T,Mw?O ltI>J)->N'I!fҲN;>'lߊn.F=u)'@姰 |Ȏ%~5O66r?[S &\n`G`l,c e찹g*l*f\rKTy.\\d ~#~XH.>%l(\"\"pGJI0Jp)ML'TȞ/nQ\\-OJBO,:/Th`r8Dvѐ\rgԏK\rsfOBjEFJeBb,@C-+O̝L̉s\n\rn(ΒhKPJ:'`ȚnWC>ȥ*ne\0 \0@X_\"D_GlNNAfd(̈́kr0P\nj6k)W#&HVLD⌬V.g1d\n\0bDN\rΝLNU\"D#qj)\"ynP*tnV %3e b @T`r>IV'd04\\%Z\\%bh\nCN̬8lRg(cpmR[nr~Y%B\$¢\09J=(iВR\$c!(xdYd&Kn&B~+\rbnpu!cN2*pÚ5\"& ÒiI.9!c9/rl-/ƸMKf 51!N9(ؓóL9%m*'?5*t&䥋,1k/n4T`8~'&Hr;5~[h):DnsxA3:0ʣ0oo}\rBI;\"7N8\n]Hb \r\r\r<=fM&\"q^363h7bo1Qd(B+t5(~37B|n>dWXSb2D4r!26qBgH5OÒ&T}NEƭoo=\r⅛\r⼴K4TkNL1M/SR39/yOPnq0/k F&D0QQ~N9,\\0l\r s73ADeE?3Du(onnk\$Km\\P:X34\"}Gfk5rttpxCmHCg\ntp/u2\\܍溒]42s#zpZi)C44uLu}F0\nUE`9]^6AFTFa_b. Un@_2#8N(\")2{_dYW5\"/f#pE0\nF&^s#M^ShʁicF\\;aVi51g6D`h@86NPlEEF`Ș4O5VФivPV\rn\\3<16u.U\0DF8l^r\$DhW.yXl7's,x'^r1\nbPMvv֣[9aOCWy\\Kl3xn'CvBYN\n6Uir\n3oH-)֯mmF@TgGvb־WWk|C@8Оn&i\nNImm/6)_q%q.N[.zvY7JdV).MJK%|0m\r7\$Nդ@8J2''iL*.\np\nۅ J(2wT-A.&ȉVͯ\0dPd\r/\rk\"vꜢ\nd.'&V\\)t4N-;>C,ʙjVNbq/vmphJGDY9:DmW8v-f|q-5:GYTLrl-uBul+mM7FGYsmMWhDMr.\r\nwb355nJsf#(93tCcVs\n\\+39؎qHNO\rt``@B9\"U~(W(a=g>Ӗ2Ur^*U-yFqH7ҵ\\Y;H#9:êj꾰 P0j+\$.1+ɠ#(O;4#o\r#\"։(x9V95c1p3X;#7X༎c42\0xC@:t1B|92^'aڍ/i̍\rhx#&\0,#hԖ-m\"Lf&JB,FM6[TUBT\rmCT!Ib@PJ2%@v(,h'}T6u~VDB)ҥ8#jz^Z\\]\$J\"77ks9LgXE(iW' r1o{I%զd0rKTup \n@\"gH=sj\0D1חS()D\"N6?cVYh%Ē_ c7cy\rg?CҰMGNC,ANL{hW<ڛS6QD}HVn[-ؤ'ˀ]H:j#@[\"*^t_낝SNy2GنUQL/]m(kظ\nK8!\nʡ075hunͿ`&қE\rndTZ [h@ܫ!.a0#c69y<=hlWQ\n4f^7h`c^@(!})eFYc26کG[ s `ᄤФDh*5kf ~9\r``BH<1\0]9=@;TbXdj00sNY1aPMFر+[~,MYĬ>k:SG>Ndu?Nh,3za3qdLB.Unox\"׆wob/0`]p\$(EZU\$ޚr(d\rSP,)Ⱥ']Qn\\!o`ETnaמJ>hvw6ud>8IqDJ\rl%wЯb]b(/,r\n4`e^y;oB\$)*T-\"-Fª0̭\" CŢ, JEr\rx )&\\F-+\nq26\"\"y&:bM3ߍ7XG\0P@d|=8&2.'fm'\0(W(&n3U+Q\"Q+%R*{+C?1\$LpH>P#\rg +/jR\r%V\$RĮX%h8\\/RPs+b8Š!D4[-[EENSyBN녒N\r@`ph7\$C\"g\0z`e4̳`@ZV jtl6Rk.fP<#P>e:v\rP<`^Ƅ_RGLzP\"ô`tLnzC^HpT^eDɳA4E\r.OFy}-lD- # ";break;case"uk":$e="%)h-ZƂh. h-mhĆ& h#˘.(.HrNhm,hh\\ʔZ8^t&P2\rH2O1E!jJR0RK좝v[̬=\0x0C83:xq\rYWVp9x7<9XJ}-ih+%N\nA|\0|&\"X2,W\n0n4HLfIy'\n&Pf~lѡE\$F>bQlFk>47h3&9tl~'N,'nk0rDs;&zOC(Yf)\"g`#*{,%T@Ch0xA(䴤FMaĺ(5BtL8 (+ifeT0(TCp0&I_SH52:BW:mAIa౷%C~0h\nOMɒ,8L 3ۏm 86@%DHԒzܓHh#)Wi G&0\\F\$}t7G\$)f5%YxZau-1əof4TljgȍMs6[#%ek8S.ك/݄7ZbNG?^/H嘋i+EfhHi\"=iUV[quʹ]xPxs+|*vF{C*I45Qk4%9Kf͙,OD.kAUH l5z`\n\nlZWꩉv gf5/=v͖Y'am,P&lУEJL^Ha6hӐ-č@ rAZ7P`*N(b:8AT۔'Oɕ>Z8ȔĬ)~ػhєLh\rɴpf5X/ ؞)\n[zج?rGjsSERJZ%4d\"g#yw{-}LB \n<)GSfijMY{gUlYyu)HS &9߲RMQr^hsV}58dR6]CY*Y;z-S#hf`l߮TvS)+b\\LHL!hvQcDmblhCڏ*4҂u#]%m*RxNԶ.X(XjY'Cnq3<>-e2Jiy9q2˥yH=8#R2SN3)wH\rI)X pF9lo44 9_q&-爕a7G~T=y7F{B:)Kkz/VCKmTbJ ܈\r˄| hs-<3`ʸ \r%`f#f#Dfl@s)/\0,2B3 V\0\0@\r\"'B\$\\p'Gk͠/O(H`y2t&Z1.D0)<|HL-/(\$frr0FS03\0 `i`&FŬְ?\0pllbGo#H?L;\$U@\n`u-ȓ,|V̀(tȈ̜LzK\$pqhfڛ;Nd~!1M0O{\$hFsHA3ڐ2b,aV*s γH\0h3x]\0P|@dx/MNsO\0h(mjFQ~@b܂pB\"0\$L+C.c0g8/8e#S*o bw\ni:g\"y63F\"}eT\r]p\r`\r\r xrΑ0A\0e k,S4,3[Ce\$t>Ǯ?fw oiCnzPF+dTi6N)4p\"jM\$3rT c*:K\$}1k5I-ITf3*@\$WGJreJ~G3&I'IttLL#T}Kk?II\rM/1RBS%PpP6P' 2PRpu.<|o5d+-)n)'S\nBFd QtH <Na5Ro2*dS?ð֏\$NB60xn/WX-\"nR2S\r.Įzze<}KJ%HCc#QR1K5_fn'f#PV˥JEGuG_ny&HV,aA_7cQT4nTs^e<U/b\\tcjPTa0Pb\"![prc5\0HGE;X`44;j4_caQQTe&y,e1Odv_b2m+ck6dG/SNjhCqzE)j5tEQqM51dNqq`u5n6\$h;rGjy5WT3d5HWb*VdOHWIeq£oKUn f'=gʒlWXWjlwU64s7zlutB6`0bApʄ)3س4̶VT5VFno13.ܖ#\0N4GDNqV¼kfHv2945v}(+k3Orf&xwiǾ8{XiONt*p6haN3LJK=֔˪:bNHR,u,)X ˎ\nZ6!uT4ZsLyNQ`b|r!PcK@SDR-97ab#G wz5 {\$d0IfWDfqo(#HYEh'f'\"mfQ_[#,\$Ӱ0OּϖEn\$@Nlw9r)G'A#MUbJH#h1lVo/j4=QnVWEx\\";break;case"uz":$e="%(a<\rƑk6LBNl6Lp(a51`u<'Ai6&%4MF`B\"u2Kc'80cAn8!\"n:far Io7X&9 5瑃Hq9L'3(}Aap-rLfqJ֘lX*MF\n%mRp(+7NY>|B:\rY.3\r4Asҙuzah@ti8[-:KZaO7;|kul7*'֊+ɜӉh@<6`5F쌣j꾰A\0ܽ-b9\r?\n?81#/[N\"\r<Z _*\$&6B|mvH|8b\"1xJʸ4\0x4c(CC8a^\\IQ\\،x7p9I|`8Q|rj\0\nA,9%O.!Hb,=&CzV=qmh!(28xЯض^Lp48BKj`q\0P2IrՇC`u\nky\rtRΕJ)JXCf&Yn-)oH3 Y| { &:xRن)0yB ;BΨ 2\rOv#!@8YQ]& ץ&t4/ڛaNi;CI%A(E!p%a)\0|K_jI^`\"t@m)tLm&4 ]>M߰䚓,Pr4G\0U<\$Ei9PPѾ 5`|O:%*P:(rETs̄%[txgP2\ncL4\"t2&TS\$P!r`UVFI(cM?-B0Nf1Ӏ:92[DZgW @@P>/Ju~AA>'029ZF)( MrY.L['%\$\"`FgB+pFTV䗙\"hl9sƆmF#'=%dꤕV!) SIL\"5bz &MQB3}7!pЍ@_#qYz)(rh9c}&m\rJWmCDI:ABJP L*PZemHŹ8bw7`M4֨d\0I7z*Rc\"iq!\r\r\$uA]t.f/W/!8I \\#pP'a \$,5Bv\\k㢤XsYAY7FtI|Ns߁>+\\R@ƴ'&x uFʱ@ZYk\$qՔnɵ2],/C`Y3;٭3tYT` -h\"ȸYYH̤ѠRePrt>K!sIB\rT2<S4dŜDu}\0(935{qm\")H5>]!yZTjݰfF\$6V~\$*Vr8eĕLB1-9!X>F4Soܲ!\rgZ8gD+*pl:jBHٻ+Af\\4]D効pUdBT82Ӿ5bdLӴ:vU{-9o㥾r߄9-͋.Abj87fFLçW?9\0V}`u O6˰n:ڴNv͙6uo{LJ=w~z+%L9yS5ߣX2Ko w55`5h]IՊ4%<3tvC!\nVZ\rij&v>b7\\U3bwfzI2_`_t.@G`'Fr1]I\r4B-`_F]M3n/L\$),-E&,@F\$*\r\nfEND\"ncΆKBD˟ƈIBj𫰨Jp\nП/ fRf(od0cA.6/k0o>N_\rΠPV@ތ Wn-ms>'>2݂48X}ڟj^BZKd\$m-#.pZvVZ\rc9蠰mf([P&I\$,&xglW\\\"5#qdo5qPWBU̒\0lQ EyLA \\VOjTb@fm|hDǒj#prb\np^l(4iD1[rqS5\r;%2s&|#\"648\"PFt/hcN7_ rC>}D/{%zR.j1ODmz\r@& :&\rF7|^OՆȢs44F3nE\$,\0C-W t]+64̀nsGf;͝G#K\$\0YP|'bJm)]O:%5/`@GbGG((4% A&'6Lq5L\nPD d`I@'-1D|k8b?e";break;case"vi":$e="%(ha\rq]Ҍ]c\rTnAjhc,\" b5H؉q Nd) R!/5!PäA&n&0cAn810Lthb*L QCH1b ,Q^cM3s2Nr=v8]&-.c\rF 1XE)C nz477JqmU`-M@daH9[\rH!y i=Yd\$IXWxmmtWjYoqwD:<6\nc4`P7e'@@#hߢ,*X7@9Cx䐉 NA\"l<1N\n(:Z@K!\nv\rA!Z8B;&rڈ2\"80P2\rDFߍ( :M!#=pB0K;(p:Ё\0࿎cL2\0xC@:td38^2}69Ӵ^'A00@\rp7^02\$0).:Ft6o5<-uHc@,edۿP0Cu#0<(P9 P48\r8R]\$KLJ)4A\" 3#!:UAjñ3hkQˑY\0\roq~4,1K(aO3f]Kul%hNA8.;J8 ˍd(S5A3CwzB6'X(P,h41])+o휊\r7cG;\\Hms*nvtλ7-K.:N(F#w2\"a;p!pZt\r!Tv*:A8|q'iZ93\r#?2AB\"\r# D^?ႆw@.ybK 0se\".Qz4a) Ð\n*]2Q\r(Xim)FaRHt&\\³Zu[J,yPܨH@F !SLM!I\nU2Ğ <=N=Ҋ :ðC\r!;0@XUJW+dբ\\zZIܳ[\$!@4lM\0@8֖Et1\"J) \$\$.3G2!5@\"JVbլ}DrP9+xbb>nˈ\$6VDhH\$VkAB\$,Wp\rm0fQޛB!Ĝ]\rANPˡ e=]\n'зHA@\$NϊrJ фZ1\0pA\0B҃Oo>(J(Y=k'QOd9\nAY!8)4r`AR4UѐC hrW&4G\r2-!7dbbEy3Va>HN\\=v.htc'܂@\n#Q]4Z9[A;S!2&ƨR|Q)L!Yg\$\$0\r\$70\"WOI3\"T.7\n~WgnE̒\n<)HbsVEY\$:!!X%7JB&`Έt\$QHI'FS>?Y2`]JKi5m%hd⬘\0²2w-LIO:K(\0\rKFlŌgprR/˦Fi̧ĉEWT,eh \\eplϡ[.?>l\\2[441)%1;?pQO)oVdd5kR\n \0v7P( -z\$`PJxF\"!T?a֬OF(s/mCTr#MD=UC^i'hKӢa:m.M.>k!nYAȣ'ճWy_! ϑ:0Q\r`*R6|[YfYwS`A<}RtC>wnsf^MIQ[0oG˸ @BH=C[\n,9nIoCX\0\nz\0.bر%pBg\$=&{Db/FAfoKw !EŤס1Jd!bPdꐑ(w 8ǟ\"_~tRfJxP(Q/Fdg#'\n20[[.Y(94vh;C8ϰ9UtRНPPƑ!qFXjN\"] Bsr0l2.&khl&sP@\"=8?EB:\\)Z.D6'@~BAbA)Hibj2jW!hI!>͡t6/\0\r.`7Gdځ̽l}˺RaM\ndG4C&(а\0%\"2\n`vT0s\".Cv\nOA\rl;B (ȱ;)\"y⹈,4ZlHI\\ٮV1kBi\nu\nnC,jlfǫJbNdbnAv(VbzsNoG\\qr.>p0 !n6N\"ﮘr\"ZA_L n~?Η@%&&eBd\\ / JS!p\r'w\"n'j!4uN#GA):tЊ0E*?cbNDx7TѲqM)LN9,.j@/d\$0BqXi/&\n=1-0^,*o2\\0MN%\"28qJGlsq56' fM_K̪m)Rבlf36:\\;Dh[9N(wӱ\$@[O\$'@\$KtF1\n[\0B IJCGR\\fLnMA+q%1\"\0004j:eH\nZV.I|[F7J+[);X0S1t5tO?Q)SI>49ceKCDLbKA n^=:\0QB;82%\0Pop>F3L1/q & @S%yP⣎uYоHQ)\":VdjdK:tRd(t/0Vc5_hIG*\\?M[h9ͣQpCqH\nt+ծB_cS>R\$2AYn(\$QBr%B+EHa^CMb]j2sDNr P2\rH2GIvL\$\"s|XK͓,rpZrċq!\0кD49Ax^;pF\\7C8^2x໎c2p>%1AAN8GI+|\$jE2V֣|sӦII\$rTNS)6_/]TD1H@PJ2\n.tHD겼2EQEWAUQPrDGQxW)\0^[J19{K[ZH NDeB&sr:G4ոܨ83FuqhXsSTtܒ9lZ!zN1)PIVۂ&Whqv䤙^>#55m)ęrsyynXgZ9uLA::aZHA*h5dƌCEK9tեQJ-#I5\r:70Cs崏G9XS!%a(AtF8:1%W\\B8\r!ѻ`iV^3eJ.W΄t] &Hr\"!bQ<^Teǣ^cWT!,ۅ>:t^M<6.H\"L_OMAKk͙.BnٰnPT!\$c|E=6&Ul Gv8FN!.S@و6'37vmr=cj _qjbi\nd WB_,8\"BÔ@!ZȸbmNtcrsGJ3=ז_+iz'Vs?u5BC0^ Yb#;Gru^U1O,ޤk~C\n9g>WJ!337e@؝8t\r1Q`nBqeݰ\"r\$EpDvow\$dJF(JƆ_L!01+RMkHp\r8\r:l.(y0<!(f*!^#42.,4\rf֩^EƔ\rz]cz~c),h^<\$\0#,Sz\$2겐h\\x(=-hLzOÌ2ΎD+,N1KiHNJ!h Ȍ\n`ڊB.l#G+CEB\$\$3+>{,\ni*ʾ`cC8a,>`a 1p-Q1`";break;case"zh-tw":$e="%:\$\ns.eUȸE9PK72(Ph)ʅ@:i aJe R)ܫ{ Nd(vQDCѮUjaʜTOABPb2ar\nr/WtЀBT)*yX^%ӕ\\r|I7FS 99STB\$rNuMТUP)&9G'ܪ{;ds'.̖L9ho^^+ieD:=.RFR%F{A,\\{Xs&֚u\0rzM6U!TDLJEtl6N_'zV~NZRZRGATO\$DЭ8UJt|R)N|rEYYg9jXtШdPL)^C-e!V%>Repr\$)\"P2\rH2GI@H\$EjsiZ\$EQJ3wGړDRJ\rC@:t2,x3(; ^'AT\nt[Ԕex!t%I2,EyRQQ s3]05aXER;Rq6WAiLr\$P\0<(P9,XB+\$mp:D]9G1J#o\\KrVh^6Cfvs}sGQ&d1T\\w*ZP2@tHS#N#* 7)A~)\"`Als\$K,JX\$dl3W_Xw^nވ\rm!n,럗A#r]?lCĐ=nq-qXd=9h9ӵ:7P0C'\0\"!EDEԊ0@>5_|]@pXKs,Ё.%ߔCsǁ#*Q1\rF( 5RR\n4)kZzJ%W 2RL,KG+\$ ,\"8eNFf!9ņc*9a\$ULr±'Ź8&\\ܜqEL ZQH\nJ{Wp'QHHIl|R`9L9P@EDt\np BZ9J/:*s`W1:;MrAC29D%JҒLS\nA@ԑ=F2/!5cK\nB-#䄑w9pY'0&B\0^V~f0(ra98bE;DBQa'\0H[h\"\nE.'J<:(PP L*)11'M:X_fȼzT6 P(bkL ȋFU:Gr`% 4Z1@(I 8PT*\0B`EKt҆\$h\$dxGpg]3M6J(+⟊|UPYxB9QV[% @e=6v7H#Ȝ5h4WBX@\"\r.iahE\n^O` 8VéLJQ4A%U:AޢC*:tPs/AU@3fq,`R7)2BX\r!`iz_!.Zoi[lt@c\rz`!_\rh4SKzrKrterzEomW6X!a*\"9Vu0iBAa s!?n^ҕ>Ap@#yq.xKNy.9E\"|_+=DQbp,KL0Dj>Xp!#O;\\T;ѹS/pۖsPL1#^8Qw7}X8}@DBQDUvC|lf\\|B\r}2t7(*cZBB\"P_IGDE8+1K9{5剰7aY>A\rGk0Ѯ]\rLav#όgn\riFC|L6lMȰ&/vl,HK(.Fo:Ξf#pNy@+E0fڋ0j\r\$>\rp!ʙD>v ĪlN\r+ p#\rz=\"zlP +(PhګPx:n9]I%Y\rmWc\r\rX<-Spbpml2b7o:1Hp\"? pk6,^a)-yb^(\${JL!b%hSd2W^Bi#bAji0.>h\$,(V?xj4Fг1ed/l!3#&1ҶS(mVfnb&S/ít%g/Vʀ, \nɨ\n`ڏsz+#~tF\$:ALc:dD#%a,}3";break;}$ki=array();foreach(explode("\n",lzw_decompress($e))as$X)$ki[]=(strpos($X,"\t")?explode("\t",$X):$X);return$ki;}abstract
-class
-SqlDb{static$instance;var$extension;var$flavor='';var$server_info;var$affected_rows=0;var$info='';var$errno=0;var$error='';protected$multi;abstract
-function
-attach($P,$V,$H);abstract
-function
-quote($zh);abstract
-function
-select_db($Db);abstract
-function
-query($J,$ri=false);function
-multi_query($J){return$this->multi=$this->query($J);}function
-store_result(){return$this->multi;}function
-next_result(){return
-false;}}if(extension_loaded('pdo')){abstract
-class
-PdoDb
-extends
-SqlDb{protected$pdo;function
-dsn($bc,$V,$H,array$wf=array()){$wf[\PDO::ATTR_ERRMODE]=\PDO::ERRMODE_SILENT;$wf[\PDO::ATTR_STATEMENT_CLASS]=array('Adminer\PdoResult');try{$this->pdo=new
-\PDO($bc,$V,$H,$wf);}catch(\Exception$wc){return$wc->getMessage();}$this->server_info=@$this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);return'';}function
-quote($zh){return$this->pdo->quote($zh);}function
-query($J,$ri=false){$K=$this->pdo->query($J);$this->error="";if(!$K){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(23);return
-false;}$this->store_result($K);return$K;}function
-store_result($K=null){if(!$K){$K=$this->multi;if(!$K)return
-false;}if($K->columnCount()){$K->num_rows=$K->rowCount();return$K;}$this->affected_rows=$K->rowCount();return
-true;}function
-next_result(){$K=$this->multi;if(!is_object($K))return
-false;$K->_offset=0;return@$K->nextRowset();}}class
-PdoResult
-extends
-\PDOStatement{var$_offset=0,$num_rows;function
-fetch_assoc(){return$this->fetch_array(\PDO::FETCH_ASSOC);}function
-fetch_row(){return$this->fetch_array(\PDO::FETCH_NUM);}private
-function
-fetch_array($Te){$L=$this->fetch($Te);return($L?array_map(array($this,'unresource'),$L):$L);}private
-function
-unresource($X){return(is_resource($X)?stream_get_contents($X):$X);}function
-fetch_field(){$M=(object)$this->getColumnMeta($this->_offset++);$U=$M->pdo_type;$M->type=($U==\PDO::PARAM_INT?0:15);$M->charsetnr=($U==\PDO::PARAM_LOB||(isset($M->flags)&&in_array("blob",(array)$M->flags))?63:0);return$M;}function
-seek($jf){for($t=0;$t<$jf;$t++)$this->fetch();}}}function
-add_driver($u,$E){SqlDriver::$drivers[$u]=$E;}function
-get_driver($u){return
-SqlDriver::$drivers[$u];}abstract
-class
-SqlDriver{static$instance;static$drivers=array();static$extensions=array();static$jush;protected$conn;protected$types=array();var$insertFunctions=array();var$editFunctions=array();var$unsigned=array();var$operators=array();var$functions=array();var$grouping=array();var$onActions="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";var$partitionBy=array();var$inout="IN|OUT|INOUT";var$enumLength="'(?:''|[^'\\\\]|\\\\.)*'";var$generated=array();static
-function
-connect($P,$V,$H){$f=new
-Db;return($f->attach($P,$V,$H)?:$f);}function
-__construct(Db$f){$this->conn=$f;}function
-types(){return
-call_user_func_array('array_merge',array_values($this->types));}function
-structuredTypes(){return
-array_map('array_keys',$this->types);}function
-enumLength(array$m){}function
-unconvertFunction(array$m){}function
-select($R,array$O,array$Z,array$s,array$yf=array(),$_=1,$G=0,$og=false){$Xd=(count($s)selectQueryBuild($O,$Z,$s,$yf,$_,$G);if(!$J)$J="SELECT".limit(($_GET["page"]!="last"&&$_&&$s&&$Xd&&JUSH=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$O)."\nFROM ".table($R),($Z?"\nWHERE ".implode(" AND ",$Z):"").($s&&$Xd?"\nGROUP BY ".implode(", ",$s):"").($yf?"\nORDER BY ".implode(", ",$yf):""),$_,($G?$_*$G:0),"\n");$vh=microtime(true);$L=$this->conn->query($J);if($og)echo
-adminer()->selectQuery($J,$vh,!$L);return$L;}function
-delete($R,$wg,$_=0){$J="FROM ".table($R);return
-queries("DELETE".($_?limit1($R,$J,$wg):" $J$wg"));}function
-update($R,array$Q,$wg,$_=0,$dh="\n"){$Ii=array();foreach($Q
-as$z=>$X)$Ii[]="$z = $X";$J=table($R)." SET$dh".implode(",$dh",$Ii);return
-queries("UPDATE".($_?limit1($R,$J,$wg,$dh):" $J$wg"));}function
-insert($R,array$Q){return
-queries("INSERT INTO ".table($R).($Q?" (".implode(", ",array_keys($Q)).")\nVALUES (".implode(", ",$Q).")":" DEFAULT VALUES").$this->insertReturning($R));}function
-insertReturning($R){return"";}function
-insertUpdate($R,array$N,array$ng){return
-false;}function
-begin(){return
-queries("BEGIN");}function
-commit(){return
-queries("COMMIT");}function
-rollback(){return
-queries("ROLLBACK");}function
-slowQuery($J,$Wh){}function
-convertSearch($v,array$X,array$m){return$v;}function
-value($X,array$m){return(method_exists($this->conn,'value')?$this->conn->value($X,$m):$X);}function
-quoteBinary($Rg){return
-q($Rg);}function
-warnings(){}function
-tableHelp($E,$be=false){}function
-inheritsFrom($R){return
-array();}function
-inheritedTables($R){return
-array();}function
-partitionsInfo($R){return
-array();}function
-hasCStyleEscapes(){return
-false;}function
-engines(){return
-array();}function
-supportsIndex(array$S){return!is_view($S);}function
-indexAlgorithms(array$Gh){return
-array();}function
-checkConstraints($R){return
-get_key_vals("SELECT c.CONSTRAINT_NAME, CHECK_CLAUSE
-FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS c
-JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON c.CONSTRAINT_SCHEMA = t.CONSTRAINT_SCHEMA AND c.CONSTRAINT_NAME = t.CONSTRAINT_NAME
-WHERE c.CONSTRAINT_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
-AND t.TABLE_NAME = ".q($R)."
-AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'",$this->conn);}function
-allFields(){$L=array();if(DB!=""){foreach(get_rows("SELECT TABLE_NAME AS tab, COLUMN_NAME AS field, IS_NULLABLE AS nullable, DATA_TYPE AS type, CHARACTER_MAXIMUM_LENGTH AS length".(JUSH=='sql'?", COLUMN_KEY = 'PRI' AS `primary`":"")."
-FROM INFORMATION_SCHEMA.COLUMNS
-WHERE TABLE_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
-ORDER BY TABLE_NAME, ORDINAL_POSITION",$this->conn)as$M){$M["null"]=($M["nullable"]=="YES");$L[$M["tab"]][]=$M;}}return$L;}}class
-Adminer{static$instance;var$error='';function
-name(){return"
Adminer";}function
-credentials(){return
-array(SERVER,$_GET["username"],get_password());}function
-connectSsl(){}function
-permanentLogin($h=false){return
-password_file($h);}function
-bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
-serverName($P){return
-h($P);}function
-database(){return
-DB;}function
-databases($Rc=true){return
-get_databases($Rc);}function
-pluginsLinks(){}function
-operators(){return
-driver()->operators;}function
-schemas(){return
-schemas();}function
-queryTimeout(){return
-2;}function
-afterConnect(){}function
-headers(){}function
-csp(array$xb){return$xb;}function
-head($Ab=null){return
-true;}function
-bodyClass(){echo" adminer";}function
-css(){$L=array();foreach(array("","-dark")as$Te){$o="adminer$Te.css";if(file_exists($o)){$Mc=file_get_contents($o);$L["$o?v=".crc32($Mc)]=($Te?"dark":(preg_match('~prefers-color-scheme:\s*dark~',$Mc)?'':'light'));}}return$L;}function
-loginForm(){echo"\n",adminer()->loginFormField('driver','| '.lang(24).' | ',input_hidden("auth[driver]","server")."MySQL / MariaDB"),adminer()->loginFormField('server',' |
|---|
| '.lang(25).' | ',''),adminer()->loginFormField('username',' |
|---|
| '.lang(26).' | ',''),adminer()->loginFormField('password',' |
|---|
| '.lang(27).' | ',''),adminer()->loginFormField('db',' |
|---|
| '.lang(28).' | ','')," |
|---|
\n","\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],lang(30))."\n";}function
-loginFormField($E,$qd,$Y){return$qd.$Y."\n";}function
-login($we,$H){if($H=="")return
-lang(31,target_blank());return
-true;}function
-tableName(array$Gh){return
-h($Gh["Name"]);}function
-fieldName(array$m,$yf=0){$U=$m["full_type"];$hb=$m["comment"];return''.h($m["field"]).'';}function
-selectLinks(array$Gh,$Q=""){$E=$Gh["Name"];echo'
';$ve=array("select"=>lang(32));if(support("table")||support("indexes"))$ve["table"]=lang(33);$be=false;if(support("table")){$be=is_view($Gh);if(!$be)$ve["create"]=lang(34);elseif(support("view"))$ve["view"]=lang(35);}if($Q!==null)$ve["edit"]=lang(36);foreach($ve
-as$z=>$X)echo" $X";echo
-doc_link(array(JUSH=>driver()->tableHelp($E,$be)),"?"),"\n";}function
-foreignKeys($R){return
-foreign_keys($R);}function
-backwardKeys($R,$Fh){return
-array();}function
-backwardKeysPrint(array$Ba,array$M){}function
-selectQuery($J,$vh,$Gc=false){$L="
\n";if(!$Gc&&($Qi=driver()->warnings())){$u="warnings";$L=", ".lang(37)."".script("qsl('a').onclick = partial(toggle, '$u');","")."$L\n$Qi
\n";}return"".h(str_replace("\n"," ",$J))." (".format_time($vh).")".(support("sql")?" ".lang(12)."":"").$L;}function
-sqlCommandQuery($J){return
-shorten_utf8(trim($J),1000);}function
-sqlPrintAfter(){}function
-rowDescription($R){return"";}function
-rowDescriptions(array$N,array$Uc){return$N;}function
-selectLink($X,array$m){}function
-selectVal($X,$A,array$m,$Hf){$L=($X===null?"NULL":(preg_match("~char|binary|boolean~",$m["type"])&&!preg_match("~var~",$m["type"])?"$X":(preg_match('~json~',$m["type"])?"$X":$X)));if(is_blob($m)&&!is_utf8($X))$L="".lang(38,strlen($Hf))."";return($A?"$L":$L);}function
-editVal($X,array$m){return$X;}function
-config(){return
-array();}function
-tableStructurePrint(array$n,$Gh=null){echo"
\n";}function
-tableIndexesPrint(array$x,array$Gh){$Pf=false;foreach($x
-as$E=>$w)$Pf|=!!$w["partial"];echo"\n";$Ib=first(driver()->indexAlgorithms($Gh));foreach($x
-as$E=>$w){ksort($w["columns"]);$og=array();foreach($w["columns"]as$z=>$X)$og[]="".h($X)."".($w["lengths"][$z]?"(".$w["lengths"][$z].")":"").($w["descs"][$z]?" DESC":"");echo"","| $w[type]".($Ib&&$w['algorithm']!=$Ib?" ($w[algorithm])":"")," | ".implode(", ",$og);if($Pf)echo" | ".($w['partial']?"WHERE ".h($w['partial']):"");echo"\n";}echo" |
\n";}function
-selectColumnsPrint(array$O,array$d){print_fieldset("select",lang(44),$O);$t=0;$O[""]=array();foreach($O
-as$z=>$X){$X=idx($_GET["columns"],$z,array());$c=select_input(" name='columns[$t][col]'",$d,$X["col"],($z!==""?"selectFieldChange":"selectAddRow"));echo"".(driver()->functions||driver()->grouping?html_select("columns[$t][fun]",array(-1=>"")+array_filter(array(lang(45)=>driver()->functions,lang(46)=>driver()->grouping)),$X["fun"]).on_help("event.target.value && event.target.value.replace(/ |\$/, '(') + ')'",1).script("qsl('select').onchange = function () { helpClose();".($z!==""?"":" qsl('select, input', this.parentNode).onchange();")." };","")."($c)":$c)."
\n";$t++;}echo"\n";}function
-selectSearchPrint(array$Z,array$d,array$x){print_fieldset("search",lang(47),$Z);foreach($x
-as$t=>$w){if($w["type"]=="FULLTEXT")echo"(".implode(", ",array_map('Adminer\h',$w["columns"])).") AGAINST"," ",script("qsl('input').oninput = selectFieldChange;",""),checkbox("boolean[$t]",1,isset($_GET["boolean"][$t]),"BOOL"),"
\n";}$Pa="this.parentNode.firstChild.onchange();";foreach(array_merge((array)$_GET["where"],array(array()))as$t=>$X){if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],adminer()->operators())))echo"".select_input(" name='where[$t][col]'",$d,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".lang(48).")"),html_select("where[$t][op]",adminer()->operators(),$X["op"],$Pa),"",script("mixin(qsl('input'), {oninput: function () { $Pa }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"
\n";}echo"\n";}function
-selectOrderPrint(array$yf,array$d,array$x){print_fieldset("sort",lang(49),$yf);$t=0;foreach((array)$_GET["order"]as$z=>$X){if($X!=""){echo"".select_input(" name='order[$t]'",$d,$X,"selectFieldChange"),checkbox("desc[$t]",1,isset($_GET["desc"][$z]),lang(50))."
\n";$t++;}}echo"".select_input(" name='order[$t]'",$d,"","selectAddRow"),checkbox("desc[$t]",1,false,lang(50))."
\n","\n";}function
-selectLimitPrint($_){echo"\n";}function
-selectLengthPrint($Uh){if($Uh!==null)echo"\n";}function
-selectActionPrint(array$x){echo"\n";}function
-selectCommandPrint(){return!information_schema(DB);}function
-selectImportPrint(){return!information_schema(DB);}function
-selectEmailPrint(array$ic,array$d){}function
-selectColumnsProcess(array$d,array$x){$O=array();$s=array();foreach((array)$_GET["columns"]as$z=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],driver()->functions)||in_array($X["fun"],driver()->grouping)))){$O[$z]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],driver()->grouping))$s[]=$O[$z];}}return
-array($O,$s);}function
-selectSearchProcess(array$n,array$x){$L=array();foreach($x
-as$t=>$w){if($w["type"]=="FULLTEXT"&&idx($_GET["fulltext"],$t)!="")$L[]="MATCH (".implode(", ",array_map('Adminer\idf_escape',$w["columns"])).") AGAINST (".q($_GET["fulltext"][$t]).(isset($_GET["boolean"][$t])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$z=>$X){$bb=$X["col"];if("$bb$X[val]"!=""&&in_array($X["op"],adminer()->operators())){$lb=array();foreach(($bb!=""?array($bb=>$n[$bb]):$n)as$E=>$m){$lg="";$kb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$Dd=process_length($X["val"]);$kb
-.=" ".($Dd!=""?$Dd:"(NULL)");}elseif($X["op"]=="SQL")$kb=" $X[val]";elseif(preg_match('~^(I?LIKE) %%$~',$X["op"],$C))$kb=" $C[1] ".adminer()->processInput($m,"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$lg="$X[op](".q($X["val"]).", ";$kb=")";}elseif(!preg_match('~NULL$~',$X["op"]))$kb
-.=" ".adminer()->processInput($m,$X["val"]);if($bb!=""||(isset($m["privileges"]["where"])&&(preg_match('~^[-\d.'.(preg_match('~IN$~',$X["op"])?',':'').']+$~',$X["val"])||!preg_match('~'.number_type().'|bit~',$m["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||preg_match('~char|text|enum|set~',$m["type"]))&&(!preg_match('~date|timestamp~',$m["type"])||preg_match('~^\d+-\d+-\d+~',$X["val"]))))$lb[]=$lg.driver()->convertSearch(idf_escape($E),$X,$m).$kb;}$L[]=(count($lb)==1?$lb[0]:($lb?"(".implode(" OR ",$lb).")":"1 = 0"));}}return$L;}function
-selectOrderProcess(array$n,array$x){$L=array();foreach((array)$_GET["order"]as$z=>$X){if($X!="")$L[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$z])?" DESC":"");}return$L;}function
-selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function
-selectLengthProcess(){return(isset($_GET["text_length"])?"$_GET[text_length]":"100");}function
-selectEmailProcess(array$Z,array$Uc){return
-false;}function
-selectQueryBuild(array$O,array$Z,array$s,array$yf,$_,$G){return"";}function
-messageQuery($J,$Vh,$Gc=false){restart_session();$sd=&get_session("queries");if(!idx($sd,$_GET["db"]))$sd[$_GET["db"]]=array();if(strlen($J)>1e6)$J=preg_replace('~[\x80-\xFF]+$~','',substr($J,0,1e6))."\n…";$sd[$_GET["db"]][]=array($J,time(),$Vh);$sh="sql-".count($sd[$_GET["db"]]);$L="".lang(55)." 🗐\n";if(!$Gc&&($Qi=driver()->warnings())){$u="warnings-".count($sd[$_GET["db"]]);$L="".lang(37).", $L\n$Qi
\n";}return" ".@date("H:i:s").""." $L".shorten_utf8($J,1000)."
".($Vh?"
($Vh)":'').(support("sql")?'
'.lang(12).'':'').'
';}function
-editRowPrint($R,array$n,$M,$yi){}function
-editFunctions(array$m){$L=($m["null"]?"NULL/":"");$yi=isset($_GET["select"])||where($_GET);foreach(array(driver()->insertFunctions,driver()->editFunctions)as$z=>$bd){if(!$z||(!isset($_GET["call"])&&$yi)){foreach($bd
-as$Zf=>$X){if(!$Zf||preg_match("~$Zf~",$m["type"]))$L
-.="/$X";}}if($z&&$bd&&!preg_match('~set|bool~',$m["type"])&&!is_blob($m))$L
-.="/SQL";}if($m["auto_increment"]&&!$yi)$L=lang(42);return
-explode("/",$L);}function
-editInput($R,array$m,$wa,$Y){if($m["type"]=="enum")return(isset($_GET["select"])?" ":"").enum_input("radio",$wa,$m,$Y,"NULL");return"";}function
-editHint($R,array$m,$Y){return"";}function
-processInput(array$m,$Y,$r=""){if($r=="SQL")return$Y;$E=$m["field"];$L=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$r))$L="$r()";elseif(preg_match('~^current_(date|timestamp)$~',$r))$L=$r;elseif(preg_match('~^([+-]|\|\|)$~',$r))$L=idf_escape($E)." $r $L";elseif(preg_match('~^[+-] interval$~',$r))$L=idf_escape($E)." $r ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)&&JUSH!="pgsql"?$Y:$L);elseif(preg_match('~^(addtime|subtime|concat)$~',$r))$L="$r(".idf_escape($E).", $L)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$r))$L="$r($L)";return
-unconvert_field($m,$L);}function
-dumpOutput(){$L=array('text'=>lang(56),'file'=>lang(57));if(function_exists('gzencode'))$L['gz']='gzip';return$L;}function
-dumpFormat(){return(support("dump")?array('sql'=>'SQL'):array())+array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
-dumpDatabase($j){}function
-dumpTable($R,$Ah,$be=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($Ah)dump_csv(array_keys(fields($R)));}else{if($be==2){$n=array();foreach(fields($R)as$E=>$m)$n[]=idf_escape($E)." $m[full_type]";$h="CREATE TABLE ".table($R)." (".implode(", ",$n).")";}else$h=create_sql($R,$_POST["auto_increment"],$Ah);set_utf8mb4($h);if($Ah&&$h){if($Ah=="DROP+CREATE"||$be==1)echo"DROP ".($be==2?"VIEW":"TABLE")." IF EXISTS ".table($R).";\n";if($be==1)$h=remove_definer($h);echo"$h;\n\n";}}}function
-dumpData($R,$Ah,$J){if($Ah){$Ee=(JUSH=="sqlite"?0:1048576);$n=array();$_d=false;if($_POST["format"]=="sql"){if($Ah=="TRUNCATE+INSERT")echo
-truncate_sql($R).";\n";$n=fields($R);if(JUSH=="mssql"){foreach($n
-as$m){if($m["auto_increment"]){echo"SET IDENTITY_INSERT ".table($R)." ON;\n";$_d=true;break;}}}}$K=connection()->query($J,1);if($K){$Qd="";$La="";$ee=array();$cd=array();$Ch="";$Jc=($R!=''?'fetch_assoc':'fetch_row');$tb=0;while($M=$K->$Jc()){if(!$ee){$Ii=array();foreach($M
-as$X){$m=$K->fetch_field();if(idx($n[$m->name],'generated')){$cd[$m->name]=true;continue;}$ee[]=$m->name;$z=idf_escape($m->name);$Ii[]="$z = VALUES($z)";}$Ch=($Ah=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Ii):"").";\n";}if($_POST["format"]!="sql"){if($Ah=="table"){dump_csv($ee);$Ah="INSERT";}dump_csv($M);}else{if(!$Qd)$Qd="INSERT INTO ".table($R)." (".implode(", ",array_map('Adminer\idf_escape',$ee)).") VALUES";foreach($M
-as$z=>$X){if($cd[$z]){unset($M[$z]);continue;}$m=$n[$z];$M[$z]=($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");}$Rg=($Ee?"\n":" ")."(".implode(",\t",$M).")";if(!$La)$La=$Qd.$Rg;elseif(JUSH=='mssql'?$tb%1000!=0:strlen($La)+4+strlen($Rg)+strlen($Ch)<$Ee)$La
-.=",$Rg";else{echo$La.$Ch;$La=$Qd.$Rg;}}$tb++;}if($La)echo$La.$Ch;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",connection()->error)."\n";if($_d)echo"SET IDENTITY_INSERT ".table($R)." OFF;\n";}}function
-dumpFilename($zd){return
-friendly_url($zd!=""?$zd:(SERVER?:"localhost"));}function
-dumpHeaders($zd,$Ve=false){$Jf=$_POST["output"];$Bc=(preg_match('~sql~',$_POST["format"])?"sql":($Ve?"tar":"csv"));header("Content-Type: ".($Jf=="gz"?"application/x-gzip":($Bc=="tar"?"application/x-tar":($Bc=="sql"||$Jf!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($Jf=="gz"){ob_start(function($zh){return
-gzencode($zh);},1e6);}return$Bc;}function
-dumpFooter(){if($_POST["format"]=="sql")echo"-- ".gmdate("Y-m-d H:i:s e")."\n";}function
-importServerPath(){return"adminer.sql";}function
-homepage(){echo''.($_GET["ns"]==""&&support("database")?''.lang(58)."\n":""),(support("scheme")?"".($_GET["ns"]!=""?lang(59):lang(60))."\n":""),($_GET["ns"]!==""?''.lang(61)."\n":""),(support("privileges")?"".lang(62)."\n":"");if($_GET["ns"]!=="")echo(support("routine")?"".lang(63)."\n":""),(support("sequence")?"".lang(64)."\n":""),(support("type")?"".lang(6)."\n":""),(support("event")?"".lang(65)."\n":"");return
-true;}function
-navigation($Se){echo"
\n";switch_lang();if($Se=="auth"){$Jf="";foreach((array)$_SESSION["pwds"]as$Ki=>$fh){foreach($fh
-as$P=>$Gi){$E=h(get_setting("vendor-$Ki-$P")?:get_driver($Ki));foreach($Gi
-as$V=>$H){if($H!==null){$Gb=$_SESSION["db"][$Ki][$P][$V];foreach(($Gb?array_keys($Gb):array(""))as$j)$Jf
-.="($E) ".h("$V@".($P!=""?adminer()->serverName($P):"").($j!=""?" - $j":""))."\n";}}}}if($Jf)echo"\n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$T=array();if($_GET["ns"]!==""&&!$Se&&DB!=""){connection()->select_db(DB);$T=table_status('',true);}adminer()->syntaxHighlighting($T);adminer()->databasesPrint($Se);$ha=array();if(DB==""||!$Se){if(support("sql")){$ha[]="".lang(55)."";$ha[]="".lang(66)."";}$ha[]="".lang(67)."";}$Ed=$_GET["ns"]!==""&&!$Se&&DB!="";if($Ed)$ha[]='".lang(68)."";echo($ha?"\n".implode("\n",$ha)."\n":"");if($Ed){if($T)adminer()->tablesPrint($T);else
-echo"
".lang(11)."
\n";}}}function
-syntaxHighlighting(array$T){echo
-script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=5.4.1",true);if(support("sql")){echo"\n";}echo
-script("syntaxHighlighting('".preg_replace('~^(\d\.?\d).*~s','\1',connection()->server_info)."', '".connection()->flavor."');");}function
-databasesPrint($Se){$i=adminer()->databases();if(DB&&$i&&!in_array(DB,$i))array_unshift($i,DB);echo"\n";}function
-tablesPrint(array$T){echo"".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($T
-as$R=>$wh){$R="$R";$E=adminer()->tableName($wh);if($E!=""&&!$wh["partition"])echo'- ".lang(70)." ",(support("table")||support("indexes")?'$E":"$E")."\n";}echo"
\n";}function
-processList(){return
-process_list();}function
-killProcess($u){return
-kill_process($u);}}class
-Plugins{private
-static$append=array('dumpFormat'=>true,'dumpOutput'=>true,'editRowPrint'=>true,'editFunctions'=>true,'config'=>true);var$plugins;var$error='';private$hooks=array();function
-__construct($eg){if($eg===null){$eg=array();$Fa="adminer-plugins";if(is_dir($Fa)){foreach(glob("$Fa/*.php")as$o)$Fd=include_once"./$o";}$rd=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$Fa.php")){$Fd=include_once"./$Fa.php";if(is_array($Fd)){foreach($Fd
-as$dg)$eg[get_class($dg)]=$dg;}else$this->error
-.=lang(71,"$Fa.php",$rd)."
";}foreach(get_declared_classes()as$Ya){if(!$eg[$Ya]&&preg_match('~^Adminer\w~i',$Ya)){$Eg=new
-\ReflectionClass($Ya);$nb=$Eg->getConstructor();if($nb&&$nb->getNumberOfRequiredParameters())$this->error
-.=lang(72,$rd,"$Ya","$Fa.php")."
";else$eg[$Ya]=new$Ya;}}}$this->plugins=$eg;$ia=new
-Adminer;$eg[]=$ia;$Eg=new
-\ReflectionObject($ia);foreach($Eg->getMethods()as$Qe){foreach($eg
-as$dg){$E=$Qe->getName();if(method_exists($dg,$E))$this->hooks[$E][]=$dg;}}}function
-__call($E,array$Nf){$sa=array();foreach($Nf
-as$z=>$X)$sa[]=&$Nf[$z];$L=null;foreach($this->hooks[$E]as$dg){$Y=call_user_func_array(array($dg,$E),$sa);if($Y!==null){if(!self::$append[$E])return$Y;$L=$Y+(array)$L;}}return$L;}}abstract
-class
-Plugin{protected$translations=array();function
-description(){return$this->lang('');}function
-screenshot(){return"";}protected
-function
-lang($v,$F=null){$sa=func_get_args();$sa[0]=idx($this->translations[LANG],$v)?:$v;return
-call_user_func_array('Adminer\lang_format',$sa);}}Adminer::$instance=(function_exists('adminer_object')?adminer_object():(is_dir("adminer-plugins")||file_exists("adminer-plugins.php")?new
-Plugins(null):new
-Adminer));SqlDriver::$drivers=array("server"=>"MySQL / MariaDB")+SqlDriver::$drivers;if(!defined('Adminer\DRIVER')){define('Adminer\DRIVER',"server");if(extension_loaded("mysqli")&&$_GET["ext"]!="pdo"){class
-Db
-extends
-\MySQLi{static$instance;var$extension="MySQLi",$flavor='';function
-__construct(){parent::init();}function
-attach($P,$V,$H){mysqli_report(MYSQLI_REPORT_OFF);list($vd,$fg)=host_port($P);$uh=adminer()->connectSsl();if($uh)$this->ssl_set($uh['key'],$uh['cert'],$uh['ca'],'','');$L=@$this->real_connect(($P!=""?$vd:ini_get("mysqli.default_host")),($P.$V!=""?$V:ini_get("mysqli.default_user")),($P.$V.$H!=""?$H:ini_get("mysqli.default_pw")),null,(is_numeric($fg)?intval($fg):ini_get("mysqli.default_port")),(is_numeric($fg)?null:$fg),($uh?($uh['verify']!==false?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,0);return($L?'':$this->error);}function
-set_charset($Ra){if(parent::set_charset($Ra))return
-true;parent::set_charset('utf8');return$this->query("SET NAMES $Ra");}function
-next_result(){return
-self::more_results()&&parent::next_result();}function
-quote($zh){return"'".$this->escape_string($zh)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class
-Db
-extends
-SqlDb{private$link;function
-attach($P,$V,$H){if(ini_bool("mysql.allow_local_infile"))return
-lang(73,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");$this->link=@mysql_connect(($P!=""?$P:ini_get("mysql.default_host")),($P.$V!=""?$V:ini_get("mysql.default_user")),($P.$V.$H!=""?$H:ini_get("mysql.default_password")),true,131072);if(!$this->link)return
-mysql_error();$this->server_info=mysql_get_server_info($this->link);return'';}function
-set_charset($Ra){if(function_exists('mysql_set_charset')){if(mysql_set_charset($Ra,$this->link))return
-true;mysql_set_charset('utf8',$this->link);}return$this->query("SET NAMES $Ra");}function
-quote($zh){return"'".mysql_real_escape_string($zh,$this->link)."'";}function
-select_db($Db){return
-mysql_select_db($Db,$this->link);}function
-query($J,$ri=false){$K=@($ri?mysql_unbuffered_query($J,$this->link):mysql_query($J,$this->link));$this->error="";if(!$K){$this->errno=mysql_errno($this->link);$this->error=mysql_error($this->link);return
-false;}if($K===true){$this->affected_rows=mysql_affected_rows($this->link);$this->info=mysql_info($this->link);return
-true;}return
-new
-Result($K);}}class
-Result{var$num_rows;private$result;private$offset=0;function
-__construct($K){$this->result=$K;$this->num_rows=mysql_num_rows($K);}function
-fetch_assoc(){return
-mysql_fetch_assoc($this->result);}function
-fetch_row(){return
-mysql_fetch_row($this->result);}function
-fetch_field(){$L=mysql_fetch_field($this->result,$this->offset++);$L->orgtable=$L->table;$L->charsetnr=($L->blob?63:0);return$L;}function
-__destruct(){mysql_free_result($this->result);}}}elseif(extension_loaded("pdo_mysql")){class
-Db
-extends
-PdoDb{var$extension="PDO_MySQL";function
-attach($P,$V,$H){$wf=array(\PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$uh=adminer()->connectSsl();if($uh){if($uh['key'])$wf[\PDO::MYSQL_ATTR_SSL_KEY]=$uh['key'];if($uh['cert'])$wf[\PDO::MYSQL_ATTR_SSL_CERT]=$uh['cert'];if($uh['ca'])$wf[\PDO::MYSQL_ATTR_SSL_CA]=$uh['ca'];if(isset($uh['verify']))$wf[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$uh['verify'];}list($vd,$fg)=host_port($P);return$this->dsn("mysql:charset=utf8;host=$vd".($fg?(is_numeric($fg)?";port=":";unix_socket=").$fg:""),$V,$H,$wf);}function
-set_charset($Ra){return$this->query("SET NAMES $Ra");}function
-select_db($Db){return$this->query("USE ".idf_escape($Db));}function
-query($J,$ri=false){$this->pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$ri);return
-parent::query($J,$ri);}}}class
-Driver
-extends
-SqlDriver{static$extensions=array("MySQLi","MySQL","PDO_MySQL");static$jush="sql";var$unsigned=array("unsigned","zerofill","unsigned zerofill");var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","FIND_IN_SET","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");var$functions=array("char_length","date","from_unixtime","lower","round","floor","ceil","sec_to_time","time_to_sec","upper");var$grouping=array("avg","count","count distinct","group_concat","max","min","sum");static
-function
-connect($P,$V,$H){$f=parent::connect($P,$V,$H);if(is_string($f)){if(function_exists('iconv')&&!is_utf8($f)&&strlen($Rg=iconv("windows-1250","utf-8",$f))>strlen($f))$f=$Rg;return$f;}$f->set_charset(charset($f));$f->query("SET sql_quote_show_create = 1, autocommit = 1");$f->flavor=(preg_match('~MariaDB~',$f->server_info)?'maria':'mysql');add_driver(DRIVER,($f->flavor=='maria'?"MariaDB":"MySQL"));return$f;}function
-__construct(Db$f){parent::__construct($f);$this->types=array(lang(74)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(75)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(76)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(77)=>array("enum"=>65535,"set"=>64),lang(78)=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(79)=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),);$this->insertFunctions=array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",);$this->editFunctions=array(number_type()=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",);if(min_version('5.7.8',10.2,$f))$this->types[lang(76)]["json"]=4294967295;if(min_version('',10.7,$f)){$this->types[lang(76)]["uuid"]=128;$this->insertFunctions['uuid']='uuid';}if(min_version(9,'',$f)){$this->types[lang(74)]["vector"]=16383;$this->insertFunctions['vector']='string_to_vector';}if(min_version(5.1,'',$f))$this->partitionBy=array("HASH","LINEAR HASH","KEY","LINEAR KEY","RANGE","LIST");if(min_version(5.7,10.2,$f))$this->generated=array("STORED","VIRTUAL");}function
-unconvertFunction(array$m){return(preg_match("~binary~",$m["type"])?"UNHEX":($m["type"]=="bit"?doc_link(array('sql'=>'bit-value-literals.html'),"b''"):(preg_match("~geometry|point|linestring|polygon~",$m["type"])?"GeomFromText":"")));}function
-insert($R,array$Q){return($Q?parent::insert($R,$Q):queries("INSERT INTO ".table($R)." ()\nVALUES ()"));}function
-insertUpdate($R,array$N,array$ng){$d=array_keys(reset($N));$lg="INSERT INTO ".table($R)." (".implode(", ",$d).") VALUES\n";$Ii=array();foreach($d
-as$z)$Ii[$z]="$z = VALUES($z)";$Ch="\nON DUPLICATE KEY UPDATE ".implode(", ",$Ii);$Ii=array();$re=0;foreach($N
-as$Q){$Y="(".implode(", ",$Q).")";if($Ii&&(strlen($lg)+$re+strlen($Y)+strlen($Ch)>1e6)){if(!queries($lg.implode(",\n",$Ii).$Ch))return
-false;$Ii=array();$re=0;}$Ii[]=$Y;$re+=strlen($Y)+2;}return
-queries($lg.implode(",\n",$Ii).$Ch);}function
-slowQuery($J,$Wh){if(min_version('5.7.8','10.1.2')){if($this->conn->flavor=='maria')return"SET STATEMENT max_statement_time=$Wh FOR $J";elseif(preg_match('~^(SELECT\b)(.+)~is',$J,$C))return"$C[1] /*+ MAX_EXECUTION_TIME(".($Wh*1000).") */ $C[2]";}}function
-convertSearch($v,array$X,array$m){return(preg_match('~char|text|enum|set~',$m["type"])&&!preg_match("~^utf8~",$m["collation"])&&preg_match('~[\x80-\xFF]~',$X['val'])?"CONVERT($v USING ".charset($this->conn).")":$v);}function
-warnings(){$K=$this->conn->query("SHOW WARNINGS");if($K&&$K->num_rows){ob_start();print_select_result($K);return
-ob_get_clean();}}function
-tableHelp($E,$be=false){$ye=($this->conn->flavor=='maria');if(information_schema(DB))return
-strtolower("information-schema-".($ye?"$E-table/":str_replace("_","-",$E)."-table.html"));if(DB=="mysql")return($ye?"mysql$E-table/":"system-schema.html");}function
-partitionsInfo($R){$Zc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($R);$K=$this->conn->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $Zc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");$L=array();list($L["partition_by"],$L["partition"],$L["partitions"])=$K->fetch_row();$Vf=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $Zc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$L["partition_names"]=array_keys($Vf);$L["partition_values"]=array_values($Vf);return$L;}function
-hasCStyleEscapes(){static$Ma;if($Ma===null){$th=get_val("SHOW VARIABLES LIKE 'sql_mode'",1,$this->conn);$Ma=(strpos($th,'NO_BACKSLASH_ESCAPES')===false);}return$Ma;}function
-engines(){$L=array();foreach(get_rows("SHOW ENGINES")as$M){if(preg_match("~YES|DEFAULT~",$M["Support"]))$L[]=$M["Engine"];}return$L;}function
-indexAlgorithms(array$Gh){return(preg_match('~^(MEMORY|NDB)$~',$Gh["Engine"])?array("HASH","BTREE"):array());}}function
-idf_escape($v){return"`".str_replace("`","``",$v)."`";}function
-table($v){return
-idf_escape($v);}function
-get_databases($Rc){$L=get_session("dbs");if($L===null){$J="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME";$L=($Rc?slow_query($J):get_vals($J));restart_session();set_session("dbs",$L);stop_session();}return$L;}function
-limit($J,$Z,$_,$jf=0,$dh=" "){return" $J$Z".($_?$dh."LIMIT $_".($jf?" OFFSET $jf":""):"");}function
-limit1($R,$J,$Z,$dh="\n"){return
-limit($J,$Z,1,0,$dh);}function
-db_collation($j,array$b){$L=null;$h=get_val("SHOW CREATE DATABASE ".idf_escape($j),1);if(preg_match('~ COLLATE ([^ ]+)~',$h,$C))$L=$C[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$h,$C))$L=$b[$C[1]][-1];return$L;}function
-logged_user(){return
-get_val("SELECT USER()");}function
-tables_list(){return
-get_key_vals("SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME");}function
-count_tables(array$i){$L=array();foreach($i
-as$j)$L[$j]=count(get_vals("SHOW TABLES IN ".idf_escape($j)));return$L;}function
-table_status($E="",$Hc=false){$L=array();foreach(get_rows($Hc?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($E!=""?"AND TABLE_NAME = ".q($E):"ORDER BY Name"):"SHOW TABLE STATUS".($E!=""?" LIKE ".q(addcslashes($E,"%_\\")):""))as$M){if($M["Engine"]=="InnoDB")$M["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$M["Comment"]);if(!isset($M["Engine"]))$M["Comment"]="";if($E!="")$M["Name"]=$E;$L[$M["Name"]]=$M;}return$L;}function
-is_view(array$S){return$S["Engine"]===null;}function
-fk_support(array$S){return
-preg_match('~InnoDB|IBMDB2I'.(min_version(5.6)?'|NDB':'').'~i',$S["Engine"]);}function
-fields($R){$ye=(connection()->flavor=='maria');$L=array();foreach(get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($R)." ORDER BY ORDINAL_POSITION")as$M){$m=$M["COLUMN_NAME"];$U=$M["COLUMN_TYPE"];$dd=$M["GENERATION_EXPRESSION"];$Ec=$M["EXTRA"];preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$Ec,$cd);preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$U,$_e);$k=$M["COLUMN_DEFAULT"];if($k!=""){$ae=preg_match('~text|json~',$_e[1]);if(!$ye&&$ae)$k=preg_replace("~^(_\w+)?('.*')$~",'\2',stripslashes($k));if($ye||$ae){$k=($k=="NULL"?null:preg_replace_callback("~^'(.*)'$~",function($C){return
-stripslashes(str_replace("''","'",$C[1]));},$k));}if(!$ye&&preg_match('~binary~',$_e[1])&&preg_match('~^0x(\w*)$~',$k,$C))$k=pack("H*",$C[1]);}$L[$m]=array("field"=>$m,"full_type"=>$U,"type"=>$_e[1],"length"=>$_e[2],"unsigned"=>ltrim($_e[3].$_e[4]),"default"=>($cd?($ye?$dd:stripslashes($dd)):$k),"null"=>($M["IS_NULLABLE"]=="YES"),"auto_increment"=>($Ec=="auto_increment"),"on_update"=>(preg_match('~\bon update (\w+)~i',$Ec,$C)?$C[1]:""),"collation"=>$M["COLLATION_NAME"],"privileges"=>array_flip(explode(",","$M[PRIVILEGES],where,order")),"comment"=>$M["COLUMN_COMMENT"],"primary"=>($M["COLUMN_KEY"]=="PRI"),"generated"=>($cd[1]=="PERSISTENT"?"STORED":$cd[1]),);}return$L;}function
-indexes($R,$g=null){$L=array();foreach(get_rows("SHOW INDEX FROM ".table($R),$g)as$M){$E=$M["Key_name"];$L[$E]["type"]=($E=="PRIMARY"?"PRIMARY":($M["Index_type"]=="FULLTEXT"?"FULLTEXT":($M["Non_unique"]?($M["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$L[$E]["columns"][]=$M["Column_name"];$L[$E]["lengths"][]=($M["Index_type"]=="SPATIAL"?null:$M["Sub_part"]);$L[$E]["descs"][]=null;$L[$E]["algorithm"]=$M["Index_type"];}return$L;}function
-foreign_keys($R){static$Zf='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$L=array();$ub=get_val("SHOW CREATE TABLE ".table($R),1);if($ub){preg_match_all("~CONSTRAINT ($Zf) FOREIGN KEY ?\\(((?:$Zf,? ?)+)\\) REFERENCES ($Zf)(?:\\.($Zf))? \\(((?:$Zf,? ?)+)\\)(?: ON DELETE (".driver()->onActions."))?(?: ON UPDATE (".driver()->onActions."))?~",$ub,$Ae,PREG_SET_ORDER);foreach($Ae
-as$C){preg_match_all("~$Zf~",$C[2],$oh);preg_match_all("~$Zf~",$C[5],$Ph);$L[idf_unescape($C[1])]=array("db"=>idf_unescape($C[4]!=""?$C[3]:$C[4]),"table"=>idf_unescape($C[4]!=""?$C[4]:$C[3]),"source"=>array_map('Adminer\idf_unescape',$oh[0]),"target"=>array_map('Adminer\idf_unescape',$Ph[0]),"on_delete"=>($C[6]?:"RESTRICT"),"on_update"=>($C[7]?:"RESTRICT"),);}}return$L;}function
-view($E){return
-array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',get_val("SHOW CREATE VIEW ".table($E),1)));}function
-collations(){$L=array();foreach(get_rows("SHOW COLLATION")as$M){if($M["Default"])$L[$M["Charset"]][-1]=$M["Collation"];else$L[$M["Charset"]][]=$M["Collation"];}ksort($L);foreach($L
-as$z=>$X)sort($L[$z]);return$L;}function
-information_schema($j){return($j=="information_schema")||(min_version(5.5)&&$j=="performance_schema");}function
-error(){return
-h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",connection()->error));}function
-create_database($j,$db){return
-queries("CREATE DATABASE ".idf_escape($j).($db?" COLLATE ".q($db):""));}function
-drop_databases(array$i){$L=apply_queries("DROP DATABASE",$i,'Adminer\idf_escape');restart_session();set_session("dbs",null);return$L;}function
-rename_database($E,$db){$L=false;if(create_database($E,$db)){$T=array();$Ni=array();foreach(tables_list()as$R=>$U){if($U=='VIEW')$Ni[]=$R;else$T[]=$R;}$L=(!$T&&!$Ni)||move_tables($T,$Ni,$E);drop_databases($L?array(DB):array());}return$L;}function
-auto_increment(){$za=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$w){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$w["columns"],true)){$za="";break;}if($w["type"]=="PRIMARY")$za=" UNIQUE";}}return" AUTO_INCREMENT$za";}function
-alter_table($R,$E,array$n,array$Tc,$hb,$lc,$db,$ya,$Uf){$qa=array();foreach($n
-as$m){if($m[1]){$k=$m[1][3];if(preg_match('~ GENERATED~',$k)){$m[1][3]=(connection()->flavor=='maria'?"":$m[1][2]);$m[1][2]=$k;}$qa[]=($R!=""?($m[0]!=""?"CHANGE ".idf_escape($m[0]):"ADD"):" ")." ".implode($m[1]).($R!=""?$m[2]:"");}else$qa[]="DROP ".idf_escape($m[0]);}$qa=array_merge($qa,$Tc);$wh=($hb!==null?" COMMENT=".q($hb):"").($lc?" ENGINE=".q($lc):"").($db?" COLLATE ".q($db):"").($ya!=""?" AUTO_INCREMENT=$ya":"");if($Uf){$Vf=array();if($Uf["partition_by"]=='RANGE'||$Uf["partition_by"]=='LIST'){foreach($Uf["partition_names"]as$z=>$X){$Y=$Uf["partition_values"][$z];$Vf[]="\n PARTITION ".idf_escape($X)." VALUES ".($Uf["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$wh
-.="\nPARTITION BY $Uf[partition_by]($Uf[partition])";if($Vf)$wh
-.=" (".implode(",",$Vf)."\n)";elseif($Uf["partitions"])$wh
-.=" PARTITIONS ".(+$Uf["partitions"]);}elseif($Uf===null)$wh
-.="\nREMOVE PARTITIONING";if($R=="")return
-queries("CREATE TABLE ".table($E)." (\n".implode(",\n",$qa)."\n)$wh");if($R!=$E)$qa[]="RENAME TO ".table($E);if($wh)$qa[]=ltrim($wh);return($qa?queries("ALTER TABLE ".table($R)."\n".implode(",\n",$qa)):true);}function
-alter_indexes($R,$qa){$Qa=array();foreach($qa
-as$X)$Qa[]=($X[2]=="DROP"?"\nDROP INDEX ".idf_escape($X[1]):"\nADD $X[0] ".($X[0]=="PRIMARY"?"KEY ":"").($X[1]!=""?idf_escape($X[1])." ":"")."(".implode(", ",$X[2]).")");return
-queries("ALTER TABLE ".table($R).implode(",",$Qa));}function
-truncate_tables(array$T){return
-apply_queries("TRUNCATE TABLE",$T);}function
-drop_views(array$Ni){return
-queries("DROP VIEW ".implode(", ",array_map('Adminer\table',$Ni)));}function
-drop_tables(array$T){return
-queries("DROP TABLE ".implode(", ",array_map('Adminer\table',$T)));}function
-move_tables(array$T,array$Ni,$Ph){$Hg=array();foreach($T
-as$R)$Hg[]=table($R)." TO ".idf_escape($Ph).".".table($R);if(!$Hg||queries("RENAME TABLE ".implode(", ",$Hg))){$Mb=array();foreach($Ni
-as$R)$Mb[table($R)]=view($R);connection()->select_db($Ph);$j=idf_escape(DB);foreach($Mb
-as$E=>$Mi){if(!queries("CREATE VIEW $E AS ".str_replace(" $j."," ",$Mi["select"]))||!queries("DROP VIEW $j.$E"))return
-false;}return
-true;}return
-false;}function
-copy_tables(array$T,array$Ni,$Ph){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($T
-as$R){$E=($Ph==DB?table("copy_$R"):idf_escape($Ph).".".table($R));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $E"))||!queries("CREATE TABLE $E LIKE ".table($R))||!queries("INSERT INTO $E SELECT * FROM ".table($R)))return
-false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")))as$M){$li=$M["Trigger"];if(!queries("CREATE TRIGGER ".($Ph==DB?idf_escape("copy_$li"):idf_escape($Ph).".".idf_escape($li))." $M[Timing] $M[Event] ON $E FOR EACH ROW\n$M[Statement];"))return
-false;}}foreach($Ni
-as$R){$E=($Ph==DB?table("copy_$R"):idf_escape($Ph).".".table($R));$Mi=view($R);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $E"))||!queries("CREATE VIEW $E AS $Mi[select]"))return
-false;}return
-true;}function
-trigger($E,$R){if($E=="")return
-array();$N=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($E));return
-reset($N);}function
-triggers($R){$L=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")))as$M)$L[$M["Trigger"]]=array($M["Timing"],$M["Event"]);return$L;}function
-trigger_options(){return
-array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
-routine($E,$U){$oa=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$ph="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$nc=driver()->enumLength;$pi="((".implode("|",array_merge(array_keys(driver()->types()),$oa)).")\\b(?:\\s*\\(((?:[^'\")]|$nc)++)\\))?"."\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s,]+)['\"]?)?(?:\\s*COLLATE\\s*['\"]?[^'\"\\s,]+['\"]?)?";$Zf="$ph*(".($U=="FUNCTION"?"":driver()->inout).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$pi";$h=get_val("SHOW CREATE $U ".idf_escape($E),2);preg_match("~\\(((?:$Zf\\s*,?)*)\\)\\s*".($U=="FUNCTION"?"RETURNS\\s+$pi\\s+":"")."(.*)~is",$h,$C);$n=array();preg_match_all("~$Zf\\s*,?~is",$C[1],$Ae,PREG_SET_ORDER);foreach($Ae
-as$Mf)$n[]=array("field"=>str_replace("``","`",$Mf[2]).$Mf[3],"type"=>strtolower($Mf[5]),"length"=>preg_replace_callback("~$nc~s",'Adminer\normalize_enum',$Mf[6]),"unsigned"=>strtolower(preg_replace('~\s+~',' ',trim("$Mf[8] $Mf[7]"))),"null"=>true,"full_type"=>$Mf[4],"inout"=>strtoupper($Mf[1]),"collation"=>strtolower($Mf[9]),);return
-array("fields"=>$n,"comment"=>get_val("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_NAME = ".q($E)),)+($U!="FUNCTION"?array("definition"=>$C[11]):array("returns"=>array("type"=>$C[12],"length"=>$C[13],"unsigned"=>$C[15],"collation"=>$C[16]),"definition"=>$C[17],"language"=>"SQL",));}function
-routines(){return
-get_rows("SELECT SPECIFIC_NAME, ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE()");}function
-routine_languages(){return
-array();}function
-routine_id($E,array$M){return
-idf_escape($E);}function
-last_id($K){return
-get_val("SELECT LAST_INSERT_ID()");}function
-explain(Db$f,$J){return$f->query("EXPLAIN ".(min_version(5.1)&&!min_version(5.7)?"PARTITIONS ":"").$J);}function
-found_rows(array$S,array$Z){return($Z||$S["Engine"]!="InnoDB"?null:$S["Rows"]);}function
-create_sql($R,$ya,$Ah){$L=get_val("SHOW CREATE TABLE ".table($R),1);if(!$ya)$L=preg_replace('~ AUTO_INCREMENT=\d+~','',$L);return$L;}function
-truncate_sql($R){return"TRUNCATE ".table($R);}function
-use_sql($Db,$Ah=""){$E=idf_escape($Db);$L="";if(preg_match('~CREATE~',$Ah)&&($h=get_val("SHOW CREATE DATABASE $E",1))){set_utf8mb4($h);if($Ah=="DROP+CREATE")$L="DROP DATABASE IF EXISTS $E;\n";$L
-.="$h;\n";}return$L."USE $E";}function
-trigger_sql($R){$L="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")),null,"-- ")as$M)$L
-.="\nCREATE TRIGGER ".idf_escape($M["Trigger"])." $M[Timing] $M[Event] ON ".table($M["Table"])." FOR EACH ROW\n$M[Statement];;\n";return$L;}function
-show_variables(){return
-get_rows("SHOW VARIABLES");}function
-show_status(){return
-get_rows("SHOW STATUS");}function
-process_list(){return
-get_rows("SHOW FULL PROCESSLIST");}function
-convert_field(array$m){if(preg_match("~binary~",$m["type"]))return"HEX(".idf_escape($m["field"]).")";if($m["type"]=="bit")return"BIN(".idf_escape($m["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$m["type"]))return(min_version(8)?"ST_":"")."AsWKT(".idf_escape($m["field"]).")";}function
-unconvert_field(array$m,$L){if(preg_match("~binary~",$m["type"]))$L="UNHEX($L)";if($m["type"]=="bit")$L="CONVERT(b$L, UNSIGNED)";if(preg_match("~geometry|point|linestring|polygon~",$m["type"])){$lg=(min_version(8)?"ST_":"");$L=$lg."GeomFromText($L, $lg"."SRID($m[field]))";}return$L;}function
-support($Ic){return
-preg_match('~^(comment|columns|copy|database|drop_col|dump|indexes|kill|privileges|move_col|procedure|processlist|routine|sql|status|table|trigger|variables|view'.(min_version(5.1)?'|event':'').(min_version(8)?'|descidx':'').(min_version('8.0.16','10.2.1')?'|check':'').')$~',$Ic);}function
-kill_process($u){return
-queries("KILL ".number($u));}function
-connection_id(){return"SELECT CONNECTION_ID()";}function
-max_connections(){return
-get_val("SELECT @@max_connections");}function
-types(){return
-array();}function
-type_values($u){return"";}function
-schemas(){return
-array();}function
-get_schema(){return"";}function
-set_schema($Tg,$g=null){return
-true;}}define('Adminer\JUSH',Driver::$jush);define('Adminer\SERVER',"".$_GET[DRIVER]);define('Adminer\DB',"$_GET[db]");define('Adminer\ME',preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').($_GET["ext"]?"ext=".urlencode($_GET["ext"]).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function
-page_header($Yh,$l="",$Ka=array(),$Zh=""){page_headers();if(is_ajax()&&$l){page_messages($l);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$ai=$Yh.($Zh!=""?": $Zh":"");$bi=strip_tags($ai.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo'
-
-
-
-
-',$bi,'
-
-';$yb=adminer()->css();if(is_int(key($yb)))$yb=array_fill_keys($yb,'light');$od=in_array('light',$yb)||in_array('',$yb);$md=in_array('dark',$yb)||in_array('',$yb);$Ab=($od?($md?null:false):($md?:null));$Ke=" media='(prefers-color-scheme: dark)'";if($Ab!==false)echo"\n";echo"\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.4.1");if(adminer()->head($Ab))echo"\n","\n";foreach($yb
-as$Bi=>$Te){$wa=($Te=='dark'&&!$Ab?$Ke:($Te=='light'&&$md?" media='(prefers-color-scheme: light)'":""));echo"\n";}echo"\n\n";$o=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($o)&&filemtime($o)+86400>time()){$Li=unserialize(file_get_contents($o));$ug="-----BEGIN PUBLIC KEY-----
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK
-RlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs
-DFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8
-h7FIx3jEaw5ckVPVTeo5JRm/1DZzJxjyDenXvBQ/6o9DgZKeNDgxwKzH+sw9/YCO
-jHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B
-nCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ
-fQIDAQAB
------END PUBLIC KEY-----
-";if(openssl_verify($Li["version"],base64_decode($Li["signature"]),$ug)==1)$_COOKIE["adminer_version"]=$Li["version"];}echo
-script("mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick".(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '".VERSION."', '".js_escape(ME)."', '".get_token()."')")."});
-document.body.classList.replace('nojs', 'js');
-const offlineMessage = '".js_escape(lang(81))."';
-const thousandsSeparator = '".js_escape(lang(4))."';"),"\n",script("mixin(qs('#help'), {onmouseover: () => { helpOpen = 1; }, onmouseout: helpMouseout});"),"\n","".script("qs('#menuopen').onclick = event => { qs('#foot').classList.toggle('foot'); event.stopPropagation(); }");if($Ka!==null){$A=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'
'.get_driver(DRIVER).' » ';$A=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$P=adminer()->serverName(SERVER);$P=($P!=""?$P:lang(25));if($Ka===false)echo"$P\n";else{echo"$P » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ka)))echo''.h(DB).' » ';if(is_array($Ka)){if($_GET["ns"]!="")echo''.h($_GET["ns"]).' » ';foreach($Ka
-as$z=>$X){$Ob=(is_array($X)?$X[1]:h($X));if($Ob!="")echo"$Ob » ";}}echo"$Yh\n";}}echo"
$ai
\n","
\n";restart_session();page_messages($l);$i=&get_session("dbs");if(DB!=""&&$i&&!in_array(DB,$i,true))$i=null;stop_session();define('Adminer\PAGE_HEADER',1);}function
-page_headers(){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(adminer()->csp(csp())as$xb){$pd=array();foreach($xb
-as$z=>$X)$pd[]="$z $X";header("Content-Security-Policy: ".implode("; ",$pd));}adminer()->headers();}function
-csp(){return
-array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self'","frame-src"=>"https://www.adminer.org","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function
-get_nonce(){static$ff;if(!$ff)$ff=base64_encode(rand_string());return$ff;}function
-page_messages($l){$Ai=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Pe=idx($_SESSION["messages"],$Ai);if($Pe){echo"
".implode("
\n
",$Pe)."
".script("messagesPrint();");unset($_SESSION["messages"][$Ai]);}if($l)echo"
$l
\n";if(adminer()->error)echo"
".adminer()->error."
\n";}function
-page_footer($Se=""){echo"
\n\n\n\n",script("setupSubmitHighlight(document);");}function
-int32($Xe){while($Xe>=2147483648)$Xe-=4294967296;while($Xe<=-2147483649)$Xe+=4294967296;return(int)$Xe;}function
-long2str(array$W,$Pi){$Rg='';foreach($W
-as$X)$Rg
-.=pack('V',$X);if($Pi)return
-substr($Rg,0,end($W));return$Rg;}function
-str2long($Rg,$Pi){$W=array_values(unpack('V*',str_pad($Rg,4*ceil(strlen($Rg)/4),"\0")));if($Pi)$W[]=strlen($Rg);return$W;}function
-xxtea_mx($Wi,$Vi,$Dh,$de){return
-int32((($Wi>>5&0x7FFFFFF)^$Vi<<2)+(($Vi>>3&0x1FFFFFFF)^$Wi<<4))^int32(($Dh^$Vi)+($de^$Wi));}function
-encrypt_string($yh,$z){if($yh=="")return"";$z=array_values(unpack("V*",pack("H*",md5($z))));$W=str2long($yh,true);$Xe=count($W)-1;$Wi=$W[$Xe];$Vi=$W[0];$I=floor(6+52/($Xe+1));$Dh=0;while($I-->0){$Dh=int32($Dh+0x9E3779B9);$cc=$Dh>>2&3;for($Kf=0;$Kf<$Xe;$Kf++){$Vi=$W[$Kf+1];$We=xxtea_mx($Wi,$Vi,$Dh,$z[$Kf&3^$cc]);$Wi=int32($W[$Kf]+$We);$W[$Kf]=$Wi;}$Vi=$W[0];$We=xxtea_mx($Wi,$Vi,$Dh,$z[$Kf&3^$cc]);$Wi=int32($W[$Xe]+$We);$W[$Xe]=$Wi;}return
-long2str($W,false);}function
-decrypt_string($yh,$z){if($yh=="")return"";if(!$z)return
-false;$z=array_values(unpack("V*",pack("H*",md5($z))));$W=str2long($yh,false);$Xe=count($W)-1;$Wi=$W[$Xe];$Vi=$W[0];$I=floor(6+52/($Xe+1));$Dh=int32($I*0x9E3779B9);while($Dh){$cc=$Dh>>2&3;for($Kf=$Xe;$Kf>0;$Kf--){$Wi=$W[$Kf-1];$We=xxtea_mx($Wi,$Vi,$Dh,$z[$Kf&3^$cc]);$Vi=int32($W[$Kf]-$We);$W[$Kf]=$Vi;}$Wi=$W[$Xe];$We=xxtea_mx($Wi,$Vi,$Dh,$z[$Kf&3^$cc]);$Vi=int32($W[0]-$We);$W[0]=$Vi;$Dh=int32($Dh-0x9E3779B9);}return
-long2str($W,true);}$bg=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($z)=explode(":",$X);$bg[$z]=$X;}}function
-add_invalid_login(){$Da=get_temp_dir()."/adminer.invalid";foreach(glob("$Da*")?:array($Da)as$o){$q=file_open_lock($o);if($q)break;}if(!$q)$q=file_open_lock("$Da-".rand_string());if(!$q)return;$Vd=unserialize(stream_get_contents($q));$Vh=time();if($Vd){foreach($Vd
-as$Wd=>$X){if($X[0]<$Vh)unset($Vd[$Wd]);}}$Ud=&$Vd[adminer()->bruteForceKey()];if(!$Ud)$Ud=array($Vh+30*60,0);$Ud[1]++;file_write_unlock($q,serialize($Vd));}function
-check_invalid_login(array&$bg){$Vd=array();foreach(glob(get_temp_dir()."/adminer.invalid*")as$o){$q=file_open_lock($o);if($q){$Vd=unserialize(stream_get_contents($q));file_unlock($q);break;}}$Ud=idx($Vd,adminer()->bruteForceKey(),array());$ef=($Ud[1]>29?$Ud[0]-time():0);if($ef>0)auth_error(lang(83,ceil($ef/60)),$bg);}$xa=$_POST["auth"];if($xa){session_regenerate_id();$Ki=$xa["driver"];$P=$xa["server"];$V=$xa["username"];$H=(string)$xa["password"];$j=$xa["db"];set_password($Ki,$P,$V,$H);$_SESSION["db"][$Ki][$P][$V][$j]=true;if($xa["permanent"]){$z=implode("-",array_map('base64_encode',array($Ki,$P,$V,$j)));$pg=adminer()->permanentLogin(true);$bg[$z]="$z:".base64_encode($pg?encrypt_string($H,$pg):"");cookie("adminer_permanent",implode(" ",$bg));}if(count($_POST)==1||DRIVER!=$Ki||SERVER!=$P||$_GET["username"]!==$V||DB!=$j)redirect(auth_url($Ki,$P,$V,$j));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$z)set_session($z,null);unset_permanent($bg);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(84).' '.lang(85));}elseif($bg&&!$_SESSION["pwds"]){session_regenerate_id();$pg=adminer()->permanentLogin();foreach($bg
-as$z=>$X){list(,$Xa)=explode(":",$X);list($Ki,$P,$V,$j)=array_map('base64_decode',explode("-",$z));set_password($Ki,$P,$V,decrypt_string(base64_decode($Xa),$pg));$_SESSION["db"][$Ki][$P][$V][$j]=true;}}function
-unset_permanent(array&$bg){foreach($bg
-as$z=>$X){list($Ki,$P,$V,$j)=array_map('base64_decode',explode("-",$z));if($Ki==DRIVER&&$P==SERVER&&$V==$_GET["username"]&&$j==DB)unset($bg[$z]);}cookie("adminer_permanent",implode(" ",$bg));}function
-auth_error($l,array&$bg){$gh=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$gh]||$_GET[$gh])&&!$_SESSION["token"])$l=lang(86);else{restart_session();add_invalid_login();$H=get_password();if($H!==null){if($H===false)$l
-.=($l?'
':'').lang(87,target_blank(),'permanentLogin()');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($bg);}}if(!$_COOKIE[$gh]&&$_GET[$gh]&&ini_bool("session.use_only_cookies"))$l=lang(88);$Nf=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$Nf["lifetime"]);if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);page_header(lang(29),$l,null);echo"\n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists('Adminer\Db')){unset($_SESSION["pwds"][DRIVER]);unset_permanent($bg);page_header(lang(90),lang(91,implode(", ",Driver::$extensions)),false);page_footer("auth");exit;}$f='';if(isset($_GET["username"])&&is_string(get_password())){list(,$fg)=host_port(SERVER);if(preg_match('~^\s*([-+]?\d+)~',$fg,$C)&&($C[1]<1024||$C[1]>65535))auth_error(lang(92),$bg);check_invalid_login($bg);$wb=adminer()->credentials();$f=Driver::connect($wb[0],$wb[1],$wb[2]);if(is_object($f)){Db::$instance=$f;Driver::$instance=new
-Driver($f);if($f->flavor)save_settings(array("vendor-".DRIVER."-".SERVER=>get_driver(DRIVER)));}}$we=null;if(!is_object($f)||($we=adminer()->login($_GET["username"],get_password()))!==true){$l=(is_string($f)?nl_br(h($f)):(is_string($we)?$we:lang(93))).(preg_match('~^ | $~',get_password())?'
'.lang(94):'');auth_error($l,$bg);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(82),lang(95));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($xa&&$_POST["token"])$_POST["token"]=get_token();$l='';if($_POST){if(!verify_token()){$Nd="max_input_vars";$Ie=ini_get($Nd);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$z){$X=ini_get($z);if($X&&(!$Ie||$X<$Ie)){$Nd=$z;$Ie=$X;}}}$l=(!$_POST["token"]&&$Ie?lang(96,"'$Nd'"):lang(95).' '.lang(97));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$l=lang(98,"'post_max_size'");if(isset($_GET["sql"]))$l
-.=' '.lang(99);}function
-print_select_result($K,$g=null,array$Bf=array(),$_=0){$ve=array();$x=array();$d=array();$Ia=array();$qi=array();$L=array();for($t=0;(!$_||$t<$_)&&($M=$K->fetch_row());$t++){if(!$t){echo"":"".lang(14))."\n";return$L;}function
-referencable_primary($bh){$L=array();foreach(table_status('',true)as$Hh=>$R){if($Hh!=$bh&&fk_support($R)){foreach(fields($Hh)as$m){if($m["primary"]){if($L[$Hh]){unset($L[$Hh]);break;}$L[$Hh]=$m;}}}}return$L;}function
-textarea($E,$Y,$N=10,$eb=80){echo"";}function
-select_input($wa,array$wf,$Y="",$rf="",$cg=""){$Oh=($wf?"select":"input");return"<$Oh$wa".($wf?">