*8ՠ08A:с]wúz>9\n+:iiPoG01)ZږneR֖gMgsLCr8Ѐ!3R)00sIJVPpK\n|9e[ˑD0z4ϑo,N8ns#{蓷z3>BS\";e5VD0[\$7z0=8 T 3Q'RnLyŋ'\0o,\0:[}(|X>xvqW?tBE1wG;!5|0JI@#uņI\\p8!']߮l-lSB,ӗ]1ԕHN8%% /;FGSh\\لct2|W\$t<hO+#BaN1{yw2\\Z&)db',Xxm~H@:d >=-lKJ\0́@rϥ@\"(AZ7h>\\#>\0XrYYxŝq=:Թ\rlomgbD_TxC0.yR]_ZǻWIG Mɪ(|@\0SOs {@k}FXSb8=_l\0=g{HyG s_J\$hkFqd4ω'>vϏ!_7Vq@1zuSejKdyuS.2\"{K?s˦hRd`:yGھ\nQow'hS>LX}eG@9W|Ϲ@_uZ=,!}\0I@#\"'Y`\\?p,Gל_'G T#oH\r\"o}?O鼔7|'=8MQyaH?߮ \0bUd67I O\"-2_0\r?hOt\0\0002~° 4K,oh Pcz`@\"H; ,='S.bSCc욌R,~X@ '8Z0&(np<6]#;C.Ҏ8P3;@L,+>p(#-f1z,8ߠƐP:9R۳)e\0ڢR!\nr{eGA@*nD6N\rR8QK0颽>PNIQ=r<;&fNGJ;UAAP&`);!s\0pp\rn(@%& SdYuC,8O#oRv,#|7\"CpB`jX3~R@v9B#@\n0>T-5/= E\nd\"!;p*nZ\08/jX\r>F Pϐe>OLO0\0)k㦃[ ϳ'L 1 1\0C1T`RʐzĚp< .>5\0> Bnˊ<\"he>кîs!H{ܐ!\r\r\"|>R1d\"U@D63>o\rvL:K2+0쾁>\0 B{!r*Hy;`8\0دd\r02A?+\0Å\0AwSl\r[ԡ6co=0z/J+ꆌW[~C0e30HQPDPY}4#YDp) |@&-/F T aH5#H.A>0;.Yġ *D2=3 pBnuDw\n!zCQ \0HQ4D*7\0J%ıpuD(O=!>u,71TM+31:\"PRQ?P+11= M\$ZlT7,Nq%E!S2&U*>GDS&ozh8881\\:Z0hT C+#ʱA%D!\0XDA3\0!\\#h9bT!dYj2S\nA+ͽHwD`(AB*+%EX.ˠB#ȿ&XeEo\"|r8W2@8Da|NhJ8[۳Wz{Z\"L\0\0Ȇ8x۶X@ Eh;af1;nhZ3E0| 옑AtB,~W8^Ǡ׃<2/ 8+۔O+%P#ή\n?߉?e˔O\\]7(#D۾(!c)NMFE#DXg)0A\0:rB`` QH>!\rB\0V%ceHFHm2B2I`#D>n\n:L9C0\0x(ޏ(\nL\"G\n@`[\ni'\0)y)&(p\0N \"N:8.\r!'4|ל~ʀ\"cDlt0c5kQQר+ZGk!Fc4Rx@&>z=\$(?(\n쀨> ҵCqیt-}G,tGW xqHfb\0\0zT9zwЅDmn'ccbH\0z3! HHz׀Iy\",-\0\"<2'#H`d-#cljĞ`i(_dgȎǂ*j\r\0> 662kj&',@2pl:0lI\rrJDhAz22p`O2h8HĄwtBFg`72{,Kl߰%C%om+X41\n2p ZB!=VܨȀ+H6*\0k%< K',3rI;8\0Z+Eܭ`+lW+Yҵ-tfbQ_-Ӏޅ+ 95LjJ.Gʩ,\\ԅ.\$2J\\-1-cˇ.lfxBqK,dˀ8AKo-3Kr/|/\\r,HϤ!Y10@.&|+J\00P3J-ZQ \r&\nL*jĉ|#Ծ\"˺A/8)1#7\$\"6\n>\n7L1h9\0BZd#b:\0+A22'̕\nt̜O2lʳ.LHC\02+L\\rKk+˳.ꌒ;(Dƀ1sds9P4쌜@.AnhJ13K03J\$\02Lk3Q;3n\0\0,sI@u/VA1UM<Le4D2V% Ap\nȬ235A-Tu53۹1+fL~\n -> ҡM4XLSdٲ͟*\\@ͨYkSDM5 XfDsUs% ̱p+K6/ݒ8Xނ=K6pH%3ͫ7lIK0LDu`P\rSO͙&(;L@ψN>S28(`JErF 2SEMM\$qE\$ã/I\$\\ID\"\n䱺w.tS ђP#\nW-\0Cҵ:jR^S8;d`5ԪaʖE+(XrM;3;B,*1&2XS)< L9;RSNgIs+ӰK7>3@O{.4pO?Tb..~O4S>1SS*4Pȣ>3\0W>2>L7:9|C\$)z@tl:>C\nBi0G,\0FD%p)o\0\n>`)QZIKG%M\0#\0DQ.H'\$E\n \$ܐ%4ID3o:L\$m 0 B\\(8通hDCsDX4TK{x`\n,\nE:p\n'>o\0tI` -\0D/KP`/H\$\n=>UFP0UG}4B\$?E%TWD} *H0T\0t\"!o\0E7R.tfRFu!ԐD\n\0F-4VQH%40uN\0DQRuE )I\n&Qm)ǚm #\\D(\$̓x4WFM&ԜR5H%q[F+IF \nTR3DLoy4TQ/E[ў<t^F)Q+4QI#IF'TiѪX!ѱF*nR>5pKm+sIRE+ԩM\0(R?+HҀJ\"TD\$ 4wQ}Tz\0G8|xR6R 4XR6\n4ymNQNM&RH&2Q/7#қ{'ҍ,|\n .\0>{o#1D;?UҕJ9*jFNщJ #~%-?CL3@EP{`>QȔ%O)4R%I@%,\"I<\$ԉTP>\n\0QP5DkOFTY|[\0&RLHS9GI1䀖M4VHoT-S)QGF [TQRjN#x]N(U8\nuU\n?5,TmԞ??@U\nu-R9U/S \nU3IEStQYJu.QFo\$&i KPC6>5G\0uRu)U'R0ЀDuIUJ@ :V8*Rf%&\\RMU9RfUAU[TUQSe[\0KeZUaUhmS<,Rs`&Tj@G!\\x^0>\0&pQQ)TUPs@%\0W `\$(1Q?\$CQp\nOJX#V7Xu;!YBSc+V#MUWHURDžU-+VmY}\\OKM\$SeToVHT!!<{RZA5R!=3U({@*Ratz\0)QP5H؏հN5+P[9V%\"\nGSL9l\rVؤ[ouUIYR_TYp5O֧\\q`U[Bu'Uw\\mRUԭ\\Es5K\\V\\S{AZ%O\$F>5EWVm`Wd]& \$Ό!RZ}ԅ]}v5ZUgQ^y` !^=FR^vUKex@+r5#@?=uΓsץYNsS!^c5\$.u`\0XE~19JUZ@#1_[4J2\n\$VI4n\0?4aR!U~)&B>tRI0_EkTUS|Uk_8&E(‘?@J5JUBQT}HVjQx\neVsU=VN4ղؗ\\xR34GD\": KQ>[\rY_#!#][j<6خX c#KL}>`'\05XcU[\0(Wt|tR]p/]H2IQO1SQjZHm)d^SXCY\rtu@Jp%M?UQ\n=Rar:ԿE-G\0\$d]meh*QWtc`AY=S\r m-=MwH]J\"䴏f\"{#9TeMcNIDU6g2ݝeaLQ&&uTX51Y>S֊Q#Ij\0WP?ub5FULn)V5R@\$!%oP'EUP-Bp\nF\$S4tUF|{qȓ0Umjs\$ڛjcڐ֫aZI5Xj26&>v\n\r)2_kGTJeQ-cZVMֽz>]acc`tHj6+kM\0>##3l='^6\0èvZ9Se\"bΡB>)/T=9\0`P\$\0]/0ڪ䵏k-6{k[F\r|SѿJMQD=/WXVa'atol冶Xj}C@\"KPom3\0#HVv~{?gx n|[?U[rhG`3#Gk%L\0I`CD \"\0ŧ#cN6ڹfzێ;ѤeeF7/N\r:QG9 \$Iռ]TWGsdWMIfBcۤ!#cnu&(S_wSf&TZ:0CSLN`ܳYj=>ŲZ!=rV]g ӣrXl-.U'uJuJ\0sJ'W%\\>?BVj4J}I/-ҝrRLS3\0,RgqӭTf>1\0_\\V8Ztc耆<^\\llj\0T]CwΓzIZwNpVWjvY>2 o\$|UWL%{toX3_RJ5~6\"Zl}`kceR=^UԎ1ѽw7edvb=\0f,m)Gp-Ӽ)9L>| \"@5`:\0,t@xlJb6aA\0ػAR[A0\$qoAS@<@y\"as.V^讥^\0H[H@bK)z\r=^zB\0No<̇t<x\0ڬ0*RI{^E:{KՐ1E0Y/c\"\04F7'\n0`UT?MPl4r( Z|&t\"ILw+m}Wi\r>U__u63y[8T-V}x_~%7{jMo_E~]P\$JCaXG9\0007Ń5A#\0.\r˴_%\n\r#|B9 :N\$S CB:j6ΉJkuK_W͢ØI=@Tv\n0^o\\Ӡ?/&u._\rC+c~Jb6e\0yѡ\0wxh8j%SVH@N'\\ۯN`n\runKqUB+f>G\r=@Gd\n)FO hʷÈfCɅX|I]3auyUi^9y\no^rt\r8͇#N VY;c*%V<#h9r\rxcv(\ra(xja`g0V̼Qx(glհ{gh`sW<Kj';)Gnq\$p+Ɍ_d^& Dx!bv!EjPV'(=b\r\"bL\0bt\n>J1;ۈ4^sQp`fr`7xE:`1.;7@[>6!*\$`\0`,@?m>>\0LCǸRn/+`;C\0*Yhގ#;3ֺ85:\\\0XH
aM1\\L[YCvN\0+\0t#\$!@*l FdhdF&Ƙf)=04x\0004ED6K䢣\0nN];q4sj-=-8\0sǨDf5p4J^'Ӕ[H^NR FKwz EgF|!codbx\0-6,E_3up /wz(exRaHYce59d\00@2@ҐYfeyYcMוh[ez\rv\\0e\\cʃ[ueNY`ۖ]9h姗~^Yqe]qe_|6!u`fJ{7M{YهjeCS6\0DuasFL}\$ȇ(MbƤ,0Buίт2gxFљ{an:i\rPjerrGBYM+qiYd˙`0,>6fo0o Xf\0VL!fl6 /1e\0>kbf\r!uf<%(r˛a& Y!mBg=@\r; \r5phI9bm\$BYˋgx#@QEOm90\"!tˉЇO* \0>%\$orN&s9f4g~jMfwygy\\`X1y5x^z_,& k|1xA6 \no蔻&xgg{r?緛-|t3}gHgK9JP+?~g6\rhpz(W`\"y:FadŬ6:fi\0A;e^wf >y`-\r\0hr\rr8i\"_ 9CIfXˈ2\"ŢhL~\"%V:!%xyizygvx]}qgZi|`+ _g٣譞6PAʀ\$=9h|p!.!i^iˢ8zVCZ\"(9U)!DgU\0j?`4LTo@BNa{r:\n̟E8æ&=E*Z:\n?g̊h.N5(Shi2*cf@7z\"|rP.ǀL8T'k:(q2&ED2~ر9v8@^X=X`qZQ֮`9j5^@竸nqv3(I6jdT\\ 3,hk3(3PuV|\0阮Uk;JQ. :J\r1nBI\r\0ɬh@?N\nsh\";r~7O\$(5R ʽjFYFܔ~xf\"vۓo˨º#aP<h-3麝/Gxni@\"G?,ZpxX`v4X[I7åXc !b}j_95qti6fٞ5FƹiѱpX'2r0ƺD,#GU2؏I\rl( 챣=Aa쩳-8dbS4~H;06b{Rs3zNބ`ˆ+4<^ay }ryk&4@?~cE@LS@z^qqNx5==2.|'[';v;:SA &[men˵<6ma=Y.神:g腀;Ix[IJ\0~zaYwT\\`V\n~P)zJQ@[{rʉDBv|i-EK;^n{:Nh;2ƀpѴ6罘99XhQ~iA@D j}ozLVѳ~ 8B?#F}FTdezcFg7Η 6#.E££S.J35KɥJ;n5:ySCvoս.{ d\\0?W\0!)'Eg;+\0YNtbp+c\0B=\"cT:BcPIDV0!ROlON~aF|%ߺ)O WoQw:ٟl0h@:օ8Q&[nFp,æ@JTw9(<{ƐO\r ڂ\$m/HnP\$o^U\"{Ė<.nq8\r\0;n硟+3n{D\$7,Ez7\0l!{8x҂.s8PAFxrQۮ1̅p+@d9OP5lK/\\msqvQ/ !z7oEdž:qV5?GHOO\$l+,\r;~Ač錳{`7|Ăr'Ji\rc+|#+<&қ^P&nJhe%dCizXA'D>ΈEk@Bw(.\n99AhNckNd`p`%2\0");}else{header("Content-Type: image/gif");switch($_GET["file"]){case"plus.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0!M*)o) qe#L\0;";break;case"cross.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0##\naFo~y._wa1JGL6]\0\0;";break;case"up.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0 MQN\n}a8yaŶ\0\0;";break;case"down.gif":echo"GIF89a\0\0\0001\0\0\0\0\0!\0\0\0,\0\0\0\0\0\0 M*)[W\\L&ٜƶ\0\0;";break;case"arrow.gif":echo"GIF89a\0\n\0\0\0!\0\0\0,\0\0\0\0\0\n\0\0iӲ\0\0;";break;}}exit;}if($_GET["script"]=="version"){$o=file_open_lock(get_temp_dir()."/adminer.version");if($o)file_write_unlock($o,serialize(array("version"=>$_POST["version"])));exit;}global$b,$e,$j,$Ob,$Vb,$fc,$k,$Lc,$Rc,$ba,$kd,$v,$ca,$Ad,$we,$cf,$rg,$Wc,$T,$Zg,$fh,$mh,$ga;if(!$_SERVER["REQUEST_URI"])$_SERVER["REQUEST_URI"]=$_SERVER["ORIG_PATH_INFO"];if(!strpos($_SERVER["REQUEST_URI"],'?')&&$_SERVER["QUERY_STRING"]!="")$_SERVER["REQUEST_URI"].="?$_SERVER[QUERY_STRING]";if($_SERVER["HTTP_X_FORWARDED_PREFIX"])$_SERVER["REQUEST_URI"]=$_SERVER["HTTP_X_FORWARDED_PREFIX"].$_SERVER["REQUEST_URI"];$ba=($_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off"))||ini_bool("session.cookie_secure");@ini_set("session.use_trans_sid",false);if(!defined("SID")){session_cache_limiter("");session_name("adminer_sid");$Re=array(0,preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),"",$ba);if(version_compare(PHP_VERSION,'5.2.0')>=0)$Re[]=true;call_user_func_array('session_set_cookie_params',$Re);session_start();}remove_slashes(array(&$_GET,&$_POST,&$_COOKIE),$_c);if(function_exists("get_magic_quotes_runtime")&&get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("zend.ze1_compatibility_mode",false);@ini_set("precision",15);function
-get_lang(){return'en';}function
-lang($Yg,$ne=null){if(is_array($Yg)){$ff=($ne==1?0:1);$Yg=$Yg[$ff];}$Yg=str_replace("%d","%s",$Yg);$ne=format_number($ne);return
-sprintf($Yg,$ne);}if(extension_loaded('pdo')){class
-Min_PDO{var$_result,$server_info,$affected_rows,$errno,$error,$pdo;function
-__construct(){global$b;$ff=array_search("SQL",$b->operators);if($ff!==false)unset($b->operators[$ff]);}function
-dsn($Sb,$V,$G,$E=array()){$E[PDO::ATTR_ERRMODE]=PDO::ERRMODE_SILENT;$E[PDO::ATTR_STATEMENT_CLASS]=array('Min_PDOStatement');try{$this->pdo=new
-PDO($Sb,$V,$G,$E);}catch(Exception$lc){auth_error(h($lc->getMessage()));}$this->server_info=@$this->pdo->getAttribute(PDO::ATTR_SERVER_VERSION);}function
-quote($qg){return$this->pdo->quote($qg);}function
-query($I,$gh=false){$J=$this->pdo->query($I);$this->error="";if(!$J){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error='Unknown error.';return
-false;}$this->store_result($J);return$J;}function
-multi_query($I){return$this->_result=$this->query($I);}function
-store_result($J=null){if(!$J){$J=$this->_result;if(!$J)return
-false;}if($J->columnCount()){$J->num_rows=$J->rowCount();return$J;}$this->affected_rows=$J->rowCount();return
-true;}function
-next_result(){if(!$this->_result)return
-false;$this->_result->_offset=0;return@$this->_result->nextRowset();}function
-result($I,$l=0){$J=$this->query($I);if(!$J)return
-false;$L=$J->fetch();return$L[$l];}}class
-Min_PDOStatement
-extends
-PDOStatement{var$_offset=0,$num_rows;function
-fetch_assoc(){return$this->fetch(PDO::FETCH_ASSOC);}function
-fetch_row(){return$this->fetch(PDO::FETCH_NUM);}function
-fetch_field(){$L=(object)$this->getColumnMeta($this->_offset++);$L->orgtable=$L->table;$L->orgname=$L->name;$L->charsetnr=(in_array("blob",(array)$L->flags)?63:0);return$L;}}}$Ob=array();function
-add_driver($s,$D){global$Ob;$Ob[$s]=$D;}function
-get_driver($s){global$Ob;return$Ob[$s];}class
-Min_SQL{var$_conn;function
-__construct($e){$this->_conn=$e;}function
-select($Q,$N,$Z,$q,$De=array(),$x=1,$F=0,$mf=false){global$b,$v;$rd=(count($q)selectQueryBuild($N,$Z,$q,$De,$x,$F);if(!$I)$I="SELECT".limit(($_GET["page"]!="last"&&$x!=""&&$q&&$rd&&$v=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$N)."\nFROM ".table($Q),($Z?"\nWHERE ".implode(" AND ",$Z):"").($q&&$rd?"\nGROUP BY ".implode(", ",$q):"").($De?"\nORDER BY ".implode(", ",$De):""),($x!=""?+$x:null),($F?$x*$F:0),"\n");$mg=microtime(true);$K=$this->_conn->query($I);if($mf)echo$b->selectQuery($I,$mg,!$K);return$K;}function
-delete($Q,$tf,$x=0){$I="FROM ".table($Q);return
-queries("DELETE".($x?limit1($Q,$I,$tf):" $I$tf"));}function
-update($Q,$P,$tf,$x=0,$Wf="\n"){$wh=array();foreach($P
-as$w=>$X)$wh[]="$w = $X";$I=table($Q)." SET$Wf".implode(",$Wf",$wh);return
-queries("UPDATE".($x?limit1($Q,$I,$tf,$Wf):" $I$tf"));}function
-insert($Q,$P){return
-queries("INSERT INTO ".table($Q).($P?" (".implode(", ",array_keys($P)).")\nVALUES (".implode(", ",$P).")":" DEFAULT VALUES"));}function
-insertUpdate($Q,$M,$lf){return
-false;}function
-begin(){return
-queries("BEGIN");}function
-commit(){return
-queries("COMMIT");}function
-rollback(){return
-queries("ROLLBACK");}function
-slowQuery($I,$Mg){}function
-convertSearch($ed,$X,$l){return$ed;}function
-value($X,$l){return(method_exists($this->_conn,'value')?$this->_conn->value($X,$l):(is_resource($X)?stream_get_contents($X):$X));}function
-quoteBinary($Nf){return
-q($Nf);}function
-warnings(){return'';}function
-tableHelp($D){}}class
-Adminer{var$operators;function
-name(){return"AdminerEvo";}function
-credentials(){return
-array(SERVER,$_GET["username"],get_password());}function
-connectSsl(){}function
-permanentLogin($g=false){return
-password_file($g);}function
-bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
-serverName($O){return
-h($O);}function
-database(){return
-DB;}function
-databases($Bc=true){return
-get_databases($Bc);}function
-schemas(){return
-schemas();}function
-queryTimeout(){return
-2;}function
-headers(){}function
-csp(){return
-csp();}function
-head(){return
-true;}function
-css(){$K=array();$zc="adminer.css";if(file_exists($zc))$K[]="$zc?v=".crc32(file_get_contents($zc));return$K;}function
-loginForm(){global$Ob;echo"\n",$this->loginFormField('driver',''.'System'.' | ',html_select("auth[driver]",$Ob,DRIVER,"loginDriver(this);")."\n"),$this->loginFormField('server',' |
---|
'.'Server'.' | ',''."\n"),$this->loginFormField('username',' |
---|
'.'Username'.' | ',''.script("focus(qs('#username')); qs('#username').form['auth[driver]'].onchange();")),$this->loginFormField('password',' |
---|
'.'Password'.' | ',''."\n"),$this->loginFormField('db',' |
---|
'.'Database'.' | ',''."\n")," |
---|
\n","\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],'Permanent login')."\n";}function
-loginFormField($D,$Yc,$Y){return$Yc.$Y;}function
-login($Ld,$G){if($G=="")return
-sprintf('Adminer does not support accessing a database without a password, more information.',target_blank());return
-true;}function
-tableName($yg){return
-h($yg["Name"]);}function
-fieldName($l,$De=0){return''.h($l["field"]).'';}function
-selectLinks($yg,$P=""){global$v,$j;echo'
';$la=array("select"=>'Select data');if(support("table")||support("indexes"))$la["table"]='Show structure';if(support("table")){if(is_view($yg))$la["view"]='Alter view';else$la["create"]='Alter table';}if($P!==null)$la["edit"]='New item';$D=$yg["Name"];$z=[];foreach($la
-as$w=>$X)$z[]="$X";echo
-generate_linksbar($z),doc_link(array($v=>$j->tableHelp($D)),"?"),"\n";}function
-foreignKeys($Q){return
-foreign_keys($Q);}function
-backwardKeys($Q,$xg){return
-array();}function
-backwardKeysPrint($Ba,$L){}function
-selectQuery($I,$mg,$uc=false){global$v,$j;if(!$uc&&($Dh=$j->warnings())){$s="warnings";$K=", ".'Warnings'."".script("qsl('a').onclick = partial(toggle, '$s');","")."
\n$Dh
\n";}$z=[(support("sql")?"".'Edit'."":""),"".'Copy to clipboard'."",];return"".h(str_replace("\n"," ",$I))."
(".format_time($mg).")".generate_linksbar($z);}function
-sqlCommandQuery($I){return
-shorten_utf8(trim($I),1000);}function
-rowDescription($Q){return"";}function
-rowDescriptions($M,$Fc){return$M;}function
-selectLink($X,$l){}function
-selectVal($X,$y,$l,$Le){$K=($X===null?"NULL":(preg_match("~char|binary|boolean~",$l["type"]??null)&&!preg_match("~var~",$l["type"]??null)?"$X
":$X));if(preg_match('~blob|bytea|raw|file~',$l["type"]??null)&&!is_utf8($X))$K="".lang(array('%d byte','%d bytes'),strlen($Le))."";if(preg_match('~json~',$l["type"]??null))$K="$K
";return($y?"$K":$K);}function
-editVal($X,$l){return$X;}function
-tableStructurePrint($m){echo"\n";}function
-tableIndexesPrint($u){echo"\n";foreach($u
-as$D=>$t){ksort($t["columns"]);$mf=array();foreach($t["columns"]as$w=>$X)$mf[]="".h($X)."".($t["lengths"][$w]?"(".$t["lengths"][$w].")":"").($t["descs"][$w]?" DESC":"");echo"$t[type] | ".implode(", ",$mf)."\n";}echo" |
---|
\n";}function
-selectColumnsPrint($N,$d){global$Lc,$Rc;print_fieldset("select",'Select',$N);$r=0;$N[""]=array();foreach($N
-as$w=>$X){$X=$_GET["columns"][$w]??null;$c=select_input(" name='columns[$r][col]'",$d,$X["col"]??null,($w!==""?"selectFieldChange":"selectAddRow"));echo"".($Lc||$Rc?"".on_help("getTarget(event).value && getTarget(event).value.replace(/ |\$/, '(') + ')'",1).script("qsl('select').onchange = function () { helpClose();".($w!==""?"":" qsl('select, input', this.parentNode).onchange();")." };","")."($c)":$c)." ".script('qsl(".icon").onclick = selectRemoveRow;',"")."
\n";$r++;}echo"\n";}function
-selectSearchPrint($Z,$d,$u){print_fieldset("search",'Search',$Z);foreach($u
-as$r=>$t){if($t["type"]=="FULLTEXT"){echo"(".implode(", ",array_map('h',$t["columns"])).") AGAINST"," ",script("qsl('input').oninput = selectFieldChange;",""),checkbox("boolean[$r]",1,isset($_GET["boolean"][$r]),"BOOL"),"
\n";}}$La="this.parentNode.firstChild.onchange();";foreach(array_merge((array)$_GET["where"],array(array()))as$r=>$X){if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators))){echo"".select_input(" name='where[$r][col]'",$d,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".'anywhere'.")"),html_select("where[$r][op]",$this->operators,$X["op"],$La),"",script("mixin(qsl('input'), {oninput: function () { $La }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"",script('qsl(".icon").onclick = selectRemoveRow;',""),"
\n";}}echo"\n";}function
-selectOrderPrint($De,$d,$u){print_fieldset("sort",'Sort',$De);$r=0;foreach((array)$_GET["order"]as$w=>$X){if($X!=""){echo"".select_input(" name='order[$r]'",$d,$X,"selectFieldChange"),checkbox("desc[$r]",1,isset($_GET["desc"][$w]),'descending')," ",script('qsl(".icon").onclick = selectRemoveRow;',""),"
\n";$r++;}}echo"".select_input(" name='order[$r]'",$d,"","selectAddRow"),checkbox("desc[$r]",1,false,'descending')," ",script('qsl(".icon").onclick = selectRemoveRow;',""),"
\n","\n";}function
-selectLimitPrint($x){echo"\n";}function
-selectLengthPrint($Kg){if($Kg!==null){echo"\n";}}function
-selectActionPrint($u){echo"\n";}function
-selectCommandPrint(){return!information_schema(DB);}function
-selectImportPrint(){return!information_schema(DB);}function
-selectEmailPrint($ac,$d){}function
-selectColumnsProcess($d,$u){global$Lc,$Rc;$N=array();$q=array();foreach((array)$_GET["columns"]as$w=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],$Lc)||in_array($X["fun"],$Rc)))){$N[$w]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$Rc))$q[]=$N[$w];}}return
-array($N,$q);}function
-selectSearchProcess($m,$u){global$e,$j;$K=array();foreach($u
-as$r=>$t){if($t["type"]=="FULLTEXT"&&$_GET["fulltext"][$r]!="")$K[]="MATCH (".implode(", ",array_map('idf_escape',$t["columns"])).") AGAINST (".q($_GET["fulltext"][$r]).(isset($_GET["boolean"][$r])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$w=>$X){if("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators)){$jf="";$fb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$hd=process_length($X["val"]);$fb.=" ".($hd!=""?$hd:"(NULL)");}elseif($X["op"]=="SQL")$fb=" $X[val]";elseif($X["op"]=="LIKE %%")$fb=" LIKE ".$this->processInput($m[$X["col"]],"%$X[val]%");elseif($X["op"]=="ILIKE %%")$fb=" ILIKE ".$this->processInput($m[$X["col"]],"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$jf="$X[op](".q($X["val"]).", ";$fb=")";}elseif(!preg_match('~NULL$~',$X["op"]))$fb.=" ".$this->processInput($m[$X["col"]],$X["val"]);if($X["col"]!="")$K[]=$jf.$j->convertSearch(idf_escape($X["col"]),$X,$m[$X["col"]]).$fb;else{$Za=array();foreach($m
-as$D=>$l){if((preg_match('~^[-\d.'.(preg_match('~IN$~',$X["op"])?',':'').']+$~',$X["val"])||!preg_match('~'.number_type().'|bit~',$l["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||preg_match('~char|text|enum|set~',$l["type"]))&&(!preg_match('~date|timestamp~',$l["type"])||preg_match('~^\d+-\d+-\d+~',$X["val"])))$Za[]=$jf.$j->convertSearch(idf_escape($D),$X,$l).$fb;}$K[]=($Za?"(".implode(" OR ",$Za).")":"1 = 0");}}}return$K;}function
-selectOrderProcess($m,$u){$K=array();foreach((array)$_GET["order"]as$w=>$X){if($X!="")$K[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$w])?" DESC":"");}return$K;}function
-selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function
-selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function
-selectEmailProcess($Z,$Fc){return
-false;}function
-selectQueryBuild($N,$Z,$q,$De,$x,$F){return"";}function
-messageQuery($I,$Lg,$uc=false){global$v,$j;restart_session();$Zc=&get_session("queries");if(isset($Zc[$_GET["db"]])===false)$Zc[$_GET["db"]]=array();if(strlen($I)>1e6)$I=preg_replace('~[\x80-\xFF]+$~','',substr($I,0,1e6))."\n…";$Zc[$_GET["db"]][]=array($I,time(),$Lg);$kg="sql-".count($Zc[$_GET["db"]]);$K="".'SQL command'." \n";if(!$uc&&($Dh=$j->warnings())){$s="warnings-".count($Zc[$_GET["db"]]);$K="".'Warnings'.", $K\n$Dh
\n";}$z=[];if(support("sql")){$z[]=''.'Edit'.'';$z[]=''.'Copy to clipboard'.'';}return" ".@date("H:i:s").""." $K".shorten_utf8($I,1000)."
".($Lg?"
($Lg)":'').generate_linksbar($z).'
';}function
-editRowPrint($Q,$m,$L,$nh){}function
-editFunctions($l){global$Vb;$K=($l["null"]?"NULL/":"");$nh=isset($_GET["select"])||where($_GET);foreach($Vb
-as$w=>$Lc){if(!$w||(!isset($_GET["call"])&&$nh)){foreach($Lc
-as$af=>$X){if(!$af||preg_match("~$af~",$l["type"]))$K.="/$X";}}if($w&&!preg_match('~set|blob|bytea|raw|file|bool~',$l["type"]))$K.="/SQL";}if($l["auto_increment"]&&!$nh)$K='Auto Increment';return
-explode("/",$K);}function
-editInput($Q,$l,$xa,$Y){if($l["type"]=="enum"){$E=array();$Sf=$Y;if(isset($_GET["select"])){$E[-1]='original';if($Sf===null)$Sf=-1;}if($l["null"]){$E[""]="NULL";if($Y===null&&!isset($_GET["select"]))$Sf="";}$E[0]='empty';preg_match_all("~'((?:[^']|'')*)'~",$l["length"],$B);foreach($B[1]as$r=>$X){$X=stripcslashes(str_replace("''","'",$X));$E[$r+1]=$X;if($Y===$X)$Sf=$r+1;}return"";}return"";}function
-editHint($Q,$l,$Y){return"";}function
-processInput($l,$Y,$p=""){if($p=="SQL")return$Y;$D=$l["field"];$K=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$p))$K="$p()";elseif(preg_match('~^current_(date|timestamp)$~',$p))$K=$p;elseif(preg_match('~^([+-]|\|\|)$~',$p))$K=idf_escape($D)." $p $K";elseif(preg_match('~^[+-] interval$~',$p))$K=idf_escape($D)." $p ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)?$Y:$K);elseif(preg_match('~^(addtime|subtime|concat)$~',$p))$K="$p(".idf_escape($D).", $K)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$p))$K="$p($K)";return
-unconvert_field($l,$K);}function
-dumpOutput(){$K=array('text'=>'open','file'=>'save');if(function_exists('gzencode'))$K['gz']='gzip';return$K;}function
-dumpFormat(){return
-array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
-dumpDatabase($i){}function
-dumpTable($Q,$sg,$td=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($sg)dump_csv(array_keys(fields($Q)));}else{if($td==2){$m=array();foreach(fields($Q)as$D=>$l)$m[]=idf_escape($D)." $l[full_type]";$g="CREATE TABLE ".table($Q)." (".implode(", ",$m).")";}else$g=create_sql($Q,$_POST["auto_increment"],$sg);set_utf8mb4($g);if($sg&&$g){if($sg=="DROP+CREATE"||$td==1)echo"DROP ".($td==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";\n";if($td==1)$g=remove_definer($g);echo"$g;\n\n";}}}function
-dumpData($Q,$sg,$I){global$e,$v;$Qd=($v=="sqlite"?0:1048576);if($sg){if($_POST["format"]=="sql"){if($sg=="TRUNCATE+INSERT")echo
-truncate_sql($Q).";\n";$m=fields($Q);}$J=$e->query($I,1);if($J){$md="";$Ja="";$wd=array();$Mc=array();$ug="";$xc=($Q!=''?'fetch_assoc':'fetch_row');while($L=$J->$xc()){if(!$wd){$wh=array();foreach($L
-as$X){$l=$J->fetch_field();if(!empty($m[$l->name]['generated'])){$Mc[$l->name]=true;continue;}$wd[]=$l->name;$w=idf_escape($l->name);$wh[]="$w = VALUES($w)";}$ug=($sg=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$wh):"").";\n";}if($_POST["format"]!="sql"){if($sg=="table"){dump_csv($wd);$sg="INSERT";}dump_csv($L);}else{if(!$md)$md="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$wd)).") VALUES";foreach($L
-as$w=>$X){if(isset($Mc[$w])){unset($L[$w]);continue;}$l=$m[$w];$L[$w]=($X!==null?unconvert_field($l,preg_match(number_type(),$l["type"])&&!preg_match('~\[~',$l["full_type"])&&is_numeric($X)?$X:q(($X===false?0:$X))):"NULL");}$Nf=($Qd?"\n":" ")."(".implode(",\t",$L).")";if(!$Ja)$Ja=$md.$Nf;elseif(strlen($Ja)+4+strlen($Nf)+strlen($ug)<$Qd)$Ja.=",$Nf";else{echo$Ja.$ug;$Ja=$md.$Nf;}}}if($Ja)echo$Ja.$ug;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$e->error)."\n";}}function
-dumpFilename($dd){return
-friendly_url($dd!=""?$dd:(SERVER!=""?SERVER:"localhost"));}function
-dumpHeaders($dd,$ce=false){$Ne=$_POST["output"];$rc=(preg_match('~sql~',$_POST["format"])?"sql":($ce?"tar":"csv"));header("Content-Type: ".($Ne=="gz"?"application/x-gzip":($rc=="tar"?"application/x-tar":($rc=="sql"||$Ne!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($Ne=="gz")ob_start('ob_gzencode',1e6);return$rc;}function
-importServerPath(){return"adminer.sql";}function
-homepage(){$z=[];if($_GET["ns"]==""&&support("database"))$z[]=''.'Alter database'.'';if($_GET["ns"]!=="")$z[]=''.'Database schema'.'';if(support("privileges"))$z[]="".'Privileges'."";echo
-generate_linksbar($z);return
-true;}function
-navigation($be){global$ga,$v,$Ob,$e;echo'
-';if($be=="auth"){$Ne="";foreach((array)$_SESSION["pwds"]as$yh=>$Yf){foreach($Yf
-as$O=>$uh){foreach($uh
-as$V=>$G){if($G!==null){$zb=$_SESSION["db"][$yh][$O][$V];foreach(($zb?array_keys($zb):array(""))as$i)$Ne.="($Ob[$yh]) ".h($V.($O!=""?"@".$this->serverName($O):"").($i!=""?" - $i":""))."\n";}}}}if($Ne)echo"\n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$S=array();if($_GET["ns"]!==""&&!$be&&DB!=""){$e->select_db(DB);$S=table_status('',true);}echo
-script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=4.8.4");if(support("sql")){echo'\n","\n";}
+function selectCommandPrint(){return!information_schema(DB);}
+function selectImportPrint(){return!information_schema(DB);}
+function selectEmailPrint($ic,$e){}
+function selectColumnsProcess($e,$v){global$Uc,$bd;$N=array();$r=array();foreach((array)$_GET["columns"]as$x=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],$Uc)||in_array($X["fun"],$bd)))){$N[$x]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$bd))$r[]=$N[$x];}}return array($N,$r);}
+function selectSearchProcess($n,$v){global$k;$K=[];foreach($v as$s=>$u){if($u["type"]=="FULLTEXT"&&$_GET["fulltext"][$s]!="")$K[]="MATCH (".implode(", ",array_map('idf_escape',$u["columns"])).") AGAINST (".q($_GET["fulltext"][$s]).(isset($_GET["boolean"][$s])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$Z){$ab=$Z["col"];$Qe=$Z["op"];$X=$Z["val"];if("$ab$X"!=""&&in_array($Qe,$this->operators)){$Gf="";$nb=" $Qe";if(preg_match('~IN$~',$Qe)){$sd=process_length($X);$nb.=" ".($sd!=""?$sd:"(NULL)");}elseif($Qe=="SQL")$nb=" $X";elseif($Qe=="LIKE %%")$nb=" LIKE ".$this->processInput($n[$ab],"%$X%");elseif($Qe=="ILIKE %%")$nb=" ILIKE ".$this->processInput($n[$ab],"%$X%");elseif($Qe=="FIND_IN_SET"){$Gf="$Qe(".q($X).", ";$nb=")";}elseif(!preg_match('~NULL$~',$Qe))$nb.=" ".$this->processInput($n[$ab],$X);if($ab!="")$K[]=$Gf.$k->convertSearch(idf_escape($ab),$Z,$n[$ab]).$nb;else{$eb=array();foreach($n as$D=>$m){if(isset($m["privileges"]["where"])&&(preg_match('~^[-\d.'.(preg_match('~IN$~',$Qe)?',':'').']+$~',$X)||!preg_match('~'.number_type().'|bit~',$m["type"]))&&(!preg_match("~[\x80-\xFF]~",$X)||preg_match('~char|text|enum|set~',$m["type"]))&&(!preg_match('~date|timestamp~',$m["type"])||preg_match('~^\d+-\d+-\d+~',$X))&&(!preg_match('~^elastic~',DRIVER)||$m["type"]!="boolean"||preg_match('~true|false~',$X))&&(!preg_match('~^elastic~',DRIVER)||strpos($Qe,"regexp")===false||preg_match('~text|keyword~',$m["type"])))$eb[]=$Gf.$k->convertSearch(idf_escape($D),$Z,$m).$nb;}$K[]=($eb?"(".implode(" OR ",$eb).")":"1 = 0");}}}return$K;}
+function selectOrderProcess($n,$v){$K=array();foreach((array)$_GET["order"]as$x=>$X){if($X!="")$K[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$x])?" DESC":"");}return$K;}
+function selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}
+function selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}
+function selectEmailProcess($Z,$Nc){return false;}
+function selectQueryBuild($N,$Z,$r,$Ye,$y,$E){return"";}
+function messageQuery($I,$rh,$Dc=false){global$w,$k;restart_session();$jd=&get_session("queries");if(!$jd[$_GET["db"]])$jd[$_GET["db"]]=array();if(strlen($I)>1e6)$I=preg_replace('~[\x80-\xFF]+$~','',substr($I,0,1e6))."\n…";$jd[$_GET["db"]][]=array($I,time(),$rh);$Ng="sql-".count($jd[$_GET["db"]]);$K="".lang(65)."\n";if(!$Dc&&($ki=$k->warnings())){$t="warnings-".count($jd[$_GET["db"]]);$K="".lang(42).", $K\n$ki
\n";}return" ".@date("H:i:s").""." $K".shorten_utf8($I,1000)."
".($rh?"
($rh)":'').(support("sql")?'
'.lang(10).'':'').'
';}
+function editRowPrint($Q,$n,$L,$Sh){}
+function editFunctions($m){global$ec;$K=($m["null"]?"NULL/":"");$Sh=isset($_GET["select"])||where($_GET);foreach($ec as$x=>$Uc){if(!$x||(!isset($_GET["call"])&&$Sh)){foreach($Uc as$xf=>$X){if(!$xf||preg_match("~$xf~",$m["type"]))$K.="/$X";}}if($x&&!preg_match('~set|blob|bytea|raw|file|bool~',$m["type"]))$K.="/SQL";}if($m["auto_increment"]&&!$Sh)$K=lang(47);return explode("/",$K);}
+function editInput($Q,$m,$ya,$Y,$q){if($m["type"]=="enum")return(isset($_GET["select"])?" ":"").($m["null"]?" ":"").enum_input("radio",$ya,$m,$Y,0);return"";}
+function editHint($Q,$m,$Y){return"";}
+function processInput($m,$Y,$q=""){if($q=="SQL")return$Y;$D=$m["field"];$K=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$q))$K="$q()";elseif(preg_match('~^current_(date|timestamp)$~',$q))$K=$q;elseif(preg_match('~^([+-]|\|\|)$~',$q))$K=idf_escape($D)." $q $K";elseif(preg_match('~^[+-] interval$~',$q))$K=idf_escape($D)." $q ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)?$Y:$K);elseif(preg_match('~^(addtime|subtime|concat)$~',$q))$K="$q(".idf_escape($D).", $K)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$q))$K="$q($K)";return unconvert_field($m,$K);}
+function dumpOutput(){$K=array('file'=>lang(66),'text'=>lang(67));if(function_exists('gzencode'))$K['gz']='gzip';return$K;}
+function dumpFormat(){return array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}
+function dumpDatabase($j){}
+function dumpTable($Q,$Wg,$Ed=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($Wg)dump_csv(array_keys(fields($Q)));}else{if($Ed==2){$n=array();foreach(fields($Q)as$D=>$m)$n[]=idf_escape($D)." $m[full_type]";$h="CREATE TABLE ".table($Q)." (".implode(", ",$n).")";}else$h=create_sql($Q,$_POST["auto_increment"],$Wg);set_utf8mb4($h);if($Wg&&$h){if($Wg=="DROP+CREATE"||$Ed==1)echo"DROP ".($Ed==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";\n";if($Ed==1)$h=remove_definer($h);echo"$h;\n\n";}}}
+function dumpData($Q,$Wg,$I){global$f,$w;$ge=($w=="sqlite"?0:1048576);if($Wg){if($_POST["format"]=="sql"){if($Wg=="TRUNCATE+INSERT")echo truncate_sql($Q).";\n";$n=fields($Q);}$J=$f->query($I,1);if($J){$yd="";$La="";$Hd=array();$Vc=array();$Yg="";$Gc=($Q!=''?'fetch_assoc':'fetch_row');while($L=$J->$Gc()){if(!$Hd){$ci=array();foreach($L as$X){$m=$J->fetch_field();if(!empty($n[$m->name]['generated'])){$Vc[$m->name]=true;continue;}$Hd[]=$m->name;$x=idf_escape($m->name);$ci[]="$x = VALUES($x)";}$Yg=($Wg=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$ci):"").";\n";}if($_POST["format"]!="sql"){if($Wg=="table"){dump_csv($Hd);$Wg="INSERT";}dump_csv($L);}else{if(!$yd)$yd="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$Hd)).") VALUES";foreach($L as$x=>$X){if(isset($Vc[$x])){unset($L[$x]);continue;}$m=$n[$x];$L[$x]=($X!==null?unconvert_field($m,preg_match(number_type(),$m["type"])&&!preg_match('~\[~',$m["full_type"])&&is_numeric($X)?$X:q(($X===false?0:$X))):"NULL");}$ng=($ge?"\n":" ")."(".implode(",\t",$L).")";if(!$La)$La=$yd.$ng;elseif(strlen($La)+4+strlen($ng)+strlen($Yg)<$ge)$La.=",$ng";else{echo$La.$Yg;$La=$yd.$ng;}}}if($La)echo$La.$Yg;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$f->error)."\n";}}
+function dumpFilename($od){return friendly_url($od!=""?$od:(SERVER!=""?SERVER:"localhost"));}
+function dumpHeaders($od,$te=false){$jf=$_POST["output"];$Ac=(preg_match('~sql~',$_POST["format"])?"sql":($te?"tar":"csv"));header("Content-Type: ".($jf=="gz"?"application/x-gzip":($Ac=="tar"?"application/x-tar":($Ac=="sql"||$jf!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($jf=="gz")ob_start('ob_gzencode',1e6);return$Ac;}
+function importServerPath(){return"adminer.sql";}
+function homepage(){echo''.($_GET["ns"]==""&&support("database")?''.lang(68)."\n":""),(support("scheme")?"".($_GET["ns"]!=""?lang(69):lang(70))."\n":""),($_GET["ns"]!==""?''.lang(71)."\n":""),(support("privileges")?"".lang(72)."\n":"");return true;}
+function navigation($se){global$fa,$w,$Wb,$f;echo'
+
+ ',$this->name(),'
+ ';if($se!="auth"):echo'
+ ',$fa,'
+ ',(version_compare($fa,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'
+
+ ';if(!isset($_COOKIE["adminer_version"]))echo script("verifyVersion('".js_escape(ME)."', '".get_token()."');");echo' ';endif;echo'
+
+';if($se=="auth"){$jf="";foreach((array)$_SESSION["pwds"]as$ei=>$Ag){foreach($Ag as$O=>$ai){foreach($ai as$V=>$G){if($G!==null){$Gb=$_SESSION["db"][$ei][$O][$V];foreach(($Gb?array_keys($Gb):array(""))as$j)$jf.="".h($Wb[$ei]).($V!=""||$O!=""?" - ":"").h($V).($V!=""&&$O!=""?"@":"").($O!=""?h($this->serverName($O)):"").($j!=""?h(" - $j"):"")."\n";}}}}if($jf)echo"\n".script("mixin(gid('logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$S=array();if($_GET["ns"]!==""&&!$se&&DB!=""){$f->select_db(DB);$S=table_status('',true);}echo script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=1196c29d");if(support("sql")){echo'
-';}$this->databasesPrint($be);$z=[];if(DB==""||!$be){if(support("sql")){$z[]="".'SQL command'."";$z[]="".'Import'."";}if(support("dump"))$z[]="".'Export'."";}echo
-generate_linksbar($z);if($_GET["ns"]!==""&&!$be&&DB!=""){echo
-generate_linksbar(['".'Create table'.""]);if(!$S)echo"".'No tables.'."\n";else$this->tablesPrint($S);}}}function
-databasesPrint($be){global$b,$e;$h=$this->databases();if(DB&&$h&&!in_array(DB,$h))array_unshift($h,DB);echo'
\n";return null;}
+function printTablesFilter(){global$c;echo""."".script("initTablesFilter(".json_encode($c->database()).");")."
\n";}
+function tablesPrint($S){echo"".script("mixin(gid('tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($S as$Q=>$Qg){$D=$this->tableName($Qg);if($D!=""){$ma=$Q==$_GET["select"]||$Q==$_GET["edit"];echo'- ".lang(77)." ";if(support("table")||support("indexes")){$ma=in_array($Q,[$_GET["table"],$_GET["create"],$_GET["indexes"],$_GET["foreign"],$_GET["trigger"]]);$Xa=is_view($Qg)?"view":"structure";echo'$D";}else echo"$D";echo"
\n";}}echo"
\n";return null;}}$c=(function_exists('adminer_object')?adminer_object():new Adminer());if(defined("DRIVER")){$pb=driver_config();$Ff=$pb['possible_drivers'];$w=$pb['jush'];$Kh=$pb['types'];$Vg=$pb['structured_types'];$Rh=$pb['unsigned'];$Ue=$pb['operators'];$Se=$pb['operator_like'];$Te=$pb['operator_regexp'];$Uc=$pb['functions'];$bd=$pb['grouping'];$ec=$pb['edit_functions'];if($c->operators===null){$c->operators=$Ue;$c->operator_like=$Se;$c->operator_regexp=$Te;}}else define("DRIVER",null);define("SERVER",DRIVER?$_GET[DRIVER]:null);define("DB",$_GET["db"]);define("ME",preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));define("HOME_URL",substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1)?:".");$fa="4.14";
+function page_header($uh,$l="",$Ka=[],$vh=""){global$a,$fa,$c,$Wb,$w;page_headers();if(is_ajax()&&$l){page_messages($l);exit;}$wh=$uh.($vh!=""?": $vh":"");$xh=strip_tags($wh.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$c->name());$Hc=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&file_exists($Hc)&&($Xd=filemtime($Hc)+86400-time())>0){$Cb=unserialize(file_get_contents($Hc));$_COOKIE["adminer_version"]=$Cb["version"];cookie("adminer_version",$Cb["version"],$Xd);}echo'
+
-',$Rg,'
-
-',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=4.8.4");if($b->head()){echo'
-
-';foreach($b->css()as$rb){echo'
+',$xh,'
+
+',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=1196c29d");if($c->head()){echo'
+
+';foreach($c->css()as$_b){echo'
';}}echo'
-
-';$zc=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&file_exists($zc)&&filemtime($zc)+86400>time()){$zh=unserialize(file_get_contents($zc));$_COOKIE["adminer_version"]=$zh["version"];}echo'
-
-',script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"),'
+
+',script("initHelpPopup();"),'
-';if($Ia!==null){$y=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'
'.$Ob[DRIVER].' » ';$y=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$O=$b->serverName(SERVER);$O=($O!=""?$O:'Server');if($Ia===false)echo"$O\n";else{echo"$O » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ia)))echo''.h(DB).' » ';if(is_array($Ia)){if($_GET["ns"]!="")echo''.h($_GET["ns"]).' » ';foreach($Ia
-as$w=>$X){$Hb=(is_array($X)?$X[1]:h($X));if($Hb!="")echo"$Hb » ";}}echo"$Og\n";}}echo"
$Qg
\n","
\n";restart_session();page_messages($k);$h=&get_session("dbs");if(DB!=""&&$h&&!in_array(DB,$h,true))$h=null;stop_session();define("PAGE_HEADER",1);}function
-page_headers(){global$b;header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");header("X-Frame-Options: deny");header("X-XSS-Protection: 0");header("X-Content-Type-Options: nosniff");header("Referrer-Policy: origin-when-cross-origin");foreach($b->csp()as$qb){$Xc=array();foreach($qb
-as$w=>$X)$Xc[]="$w $X";header("Content-Security-Policy: ".implode("; ",$Xc));}$b->headers();}function
-csp(){return
-array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self' https://api.github.com/repos/adminerevo/adminerevo/releases/latest","frame-src"=>"'self'","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function
-get_nonce(){static$ke;if(!$ke)$ke=base64_encode(rand_string());return$ke;}function
-page_messages($k){$oh=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Zd=[];if(isset($_SESSION["messages"][$oh]))$Zd=$_SESSION["messages"][$oh];if(count($Zd)>0){echo"
".implode("
\n
",$Zd)."
".script("messagesPrint();");unset($_SESSION["messages"][$oh]);}if($k)echo"
$k
\n";}function
-page_footer($be=""){global$b,$T;echo'
+';if($Ka!==null){echo'',''.lang(80).' » ';$O="";if($Ka===false)$O.=h($Wb[DRIVER]).": ";$_g=$c->serverName(SERVER);$O.=$_g!=""?h($_g):lang(30);if($Ka===false)echo h($O),"\n";else{$z=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);echo"$O » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ka)))echo''.h(DB).' » ';if(is_array($Ka)){if($_GET["ns"]!="")echo''.h($_GET["ns"]).' » ';foreach($Ka as$x=>$X){$Ob=(is_array($X)?$X[1]:h($X));if($Ob!="")echo"$Ob » ";}}echo"$uh\n";}}echo"
$wh
\n","\n";restart_session();page_messages($l);$i=&get_session("dbs");if(DB!=""&&$i&&!in_array(DB,$i,true))$i=null;stop_session();define("PAGE_HEADER",1);}
+function page_headers(){global$c;header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");header("X-Frame-Options: deny");header("X-XSS-Protection: 0");header("X-Content-Type-Options: nosniff");header("Referrer-Policy: origin-when-cross-origin");foreach($c->csp()as$zb){$hd=array();foreach($zb as$x=>$X)$hd[]="$x $X";header("Content-Security-Policy: ".implode("; ",$hd));}$c->headers();}
+function csp(){return[["script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self' https://api.github.com/repos/adminerneo/adminerneo/releases/latest","frame-src"=>"'self'","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",],];}
+function get_nonce(){static$Be;if(!$Be)$Be=base64_encode(get_random_string(true));return$Be;}
+function page_messages($l){$Th=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$qe=$_SESSION["messages"][$Th];if($qe){echo"".implode("
\n",$qe)."
".script("messagesPrint();");unset($_SESSION["messages"][$Th]);}if($l)echo"$l
\n";}
+function page_footer($se=null){global$c,$T;echo"";echo"