$ex
\n\n";}sub jr{my($jm,%jn,$AH);%jn=%{$_[0]};
$AH="\x0D\x0A";local(*AI);if(!$jn{$z[494]}){die("SMTP_pop3auth: POP3 username not defined'\n");
}if(!$jn{$z[495]}){die("SMTP_pop3auth: POP3 password not defined'\n");
}if($ab{$z[496]}{$z[497]}){return 1;}my($fx,$ju,$fw,$kg,$jw,$ew);
$fx=$jn{$z[498]}||$jn{$z[483]};$ju=$jn{$z[499]}||110;$fw=$jn{$z[494]};
$kg=$jn{$z[495]};$jw=$jn{$z[500]}||$jn{$z[487]}||30;$ew=$jn{$z[488]}
||0;$jw+=time()if$jw<10**8&&$jw>0;if($fx=~s/:(\d+)//){$ju=$1;
}my($jz)=gethostbyname($fx)||do{$ab{$z[489]}="Could not connect to POP3 server. Unknown host $fx\n";
return 0;};socket(AI,PF_INET,SOCK_STREAM,0)||do{$ab{$z[489]}
="Could not connect to POP3 server. No Socket: $!\n";return
0;};connect(AI,pack"SnA4x8",PF_INET,$ju,$jz)||do{if($!eq"Unknown error")
{$ab{$z[489]}="Could not connect to POP3 server. POP3 server does not exist or is not responding.\n";
return 0;}else{$ab{$z[489]}="Could not connect to POP3 server. Connect failed: $!\n";
return 0;}};select(AI);$|=1;select(STDOUT);binmode(AI);my$ka
=&js(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($ew){&jp($ka);}if(uc(substr($ka,0,3))ne"+OK")
{$ab{$z[489]}="An unknown error occured. Server response: $ka\n";
return 0;}print AI"USER $fw",$AH;if($ew){&jp("USER $fw",$AH);
}$ka=&js(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"+OK"){$ab{$z[489]}
="The server didn't accept the login info for '$fw'. Server response: $ka\n";
return 0;}print AI"PASS $kg",$AH;if($ew){&jp("PASS $kg",$AH);
}$ka=&js(\*AI,$jw)||do{$ab{$z[489]}="Timed out waiting for POP3 server to respond.\n";
return 0;};if($ew){&jp($ka);}if(substr($ka,0,3)ne"+OK"){$ab{$z[489]}
="The server didn't accept the login info for '$fw'. Server response: $ka\n";
return 0;}print AI"QUIT",$AH;if($ew){&jp("QUIT",$AH);}close(AI);
$ab{$z[496]}{$z[497]}=1;return 1;}sub jt{my$AJ=$_[0];my$jw=
$_[1]||$z[350];my($kh,$ki,$kj,$kk,$kl,$km,$kn);fileno($AJ)||
die("fh_can_read: invalid filehandle or filehandle not open!\n");
vec($kh,fileno($AJ),1)=1;$kn=select($ki=$kh,undef,undef,$jw);
return vec($ki,fileno($AJ),1);}sub js{my$AJ=$_[0];my$jw=int($_[1]);
if(!$jw){die("FH_readline: no timeout value specified!\n");
}if($jw<10**8){die("FH_readline: timeout value must be in time() format!\n");
}fileno($AJ)||die("FH_readline: invalid filehandle or filehandle not open!\n");
my($ea,$ko);while($jw>=time()){&jt(\*AI,0.25)||next;sysread(\*AI,$ko,
1)||last;$ea.=$ko;if($ko eq"\x0A"){last;}}return$ea;}sub ky
{my$kp=$ab{$z[501]}{$z[502]}||={};my$kq=int++$kp->{$z[48]};
my$fe="FH$kq";return eval"local *$fe";}sub eh{return unless
($af{$z[503]});my$kp=$ab{$z[501]}{$z[504]}||={};$kp->{$z[505]}
||=[];my($kr,$jw)=@_;$kr||=$z[267];$jw||=0;if($kr ne$z[267]
and$kr ne$z[506]){&ak("lock: invalid lock type: '$kr'");}my
$ks;if(@{$kp->{$z[505]}}>0){$ks=$kp->{$z[505]}[-1];}if($ks
eq$z[267]){$kr=$ks;}if($ks eq$kr){push(@{$kp->{$z[505]}},$kr);
return 1;}my$kt;if($ks eq$z[506]and$kr eq$z[267]){&ak("lock: cannot upgrade a 'shared' lock to an 'exclusive' lock");
}$kt=&ku('',$kr,$jw);if($kt){push(@{$kp->{$z[505]}},$kr);}return
$kt;}sub ei{return unless($af{$z[503]});my$kp=$ab{$z[501]}{$z[504]}
||={};$kp->{$z[505]}||=[];my($jw)=@_;$jw||=0;unless(@{$kp->{$z[505]}}
>0){&ak($z[507])}my$ks=pop(@{$kp->{$z[505]}});return if(@{$kp->{$z[505]}}
>0 and$kp->{$z[505]}[-1]eq$ks);if(@{$kp->{$z[505]}}==0){&kv('');
}}sub ku{my$kp=$ab{$z[501]}{$z[504]}||={};my($kw,$kr,$jw)=@_;
my$kx;if($kw){$kx="$ab{'datadir'}$kw.lock";}else{$kx=$ab{$z[508]};
}if(not exists$kp->{$z[509]}{$kw}){$kp->{$z[509]}{$kw}{$z[107]}
=$kx;$kp->{$z[509]}{$kw}{$z[510]}=&ky();sysopen($kp->{$z[509]}{$kw}{$z[510]},
$kp->{$z[509]}{$kw}{$z[107]},O_RDWR|O_CREAT)||&ak($z[508],"error opening $kr file lock $kp->{'lockinfo'}{$kw}{'filename'}: $!\n");
}else{&ak("_lock_flock: already a lock for semaphore '$kw'");
}my$kz;if($kr eq$z[506]){$kz=LOCK_SH;}if($kr eq$z[267]){$kz
=LOCK_EX;}if($jw>0){$kz|=LOCK_NB;}my$la=time()+$jw;until(flock($kp->{$z[509]}{$kw}{$z[510]},
$kz)){if(time()<$la){sleep(1);}else{close($kp->{$z[509]}{$kw}{$z[510]});
&ak($z[511]);}}return 1;}sub kv{my$kp=$ab{$z[501]}{$z[504]}
||={};my($kw)=@_;unless(flock($kp->{$z[509]}{$kw}{$z[510]},
LOCK_UN)){&ak($z[508],"error releasing a flock() on file lock $kp->{'lockinfo'}{$kw}{'filename'}: $!\n");
}unless(close($kp->{$z[509]}{$kw}{$z[510]})){&ak($z[508],"error closing file lock $kp->{'lockinfo'}{$kw}{'filename'}: $!\n");
}delete$kp->{$z[509]}{$kw};return 1;}sub qu{my$fh=shift;$fh
=~s|\\|/|g;if($fh=~m|^/|){return$fh;}if($fh=~m|^\w:/|){return
$fh;}return&lb($ab{$z[512]}.$z[64].$fh);}sub lb{my$fh=shift;
$fh=~s|\\|/|g;1 while$fh=~s|[^/]*/\.\./||;return$fh;}sub qv
{my($ld,@jn)=@_;$ld=~s/\s+//g;$ld=uc$ld;my$le;my$lf=-1;my$lg;
foreach$lg(split(/,/,$ld)){$lf++;my$lh=shift@jn;my$li=$lg=~
s/\[|\]//g;if($lg eq$z[513]){@jn=();last;}next if($li and not
defined$lh);next if($lg eq$z[514]and defined$lh);next if($lg
=~/\bVALUE\b/and not ref($lh)and defined($lh));next if(uc(ref
$lh)=~/\b$lg\b/);next if($lg=~/\bINT\b/and$lh!~/[^0-9\.\e\-]/i
and$lh==int($lh));$le.=", "if$le;$le.="\$_[$lf] must be ";$le
.="either "if$li;$le.=$lg;$le.=" or undefined"if$li;$le.=" ARG: $lh.";
}if(@jn){$lf++;$le.=", "if$le;$le.="extra argument(s) \@_["
.($lf)." .. ".($lf+$#jn)."]";}return 1unless$le;my$fl=(caller(1))[3];
$fl=~s/^main:://;&ak("Invalid arguments passed to $fl".": $le");
}1;;sub lr{my($lj,$lk)=@_;foreach(@{$lj->{$z[173]}}){my($ll,
$fl)=@{$_};if(!defined&{$fl}&&!defined&{$ab{$z[515]}{$ll}})
{die("The action '$ll' defined as a handler for db '$lj->{'name'}' does not have a custom handler or a default handler");
}if((!$lk&&$ag{$lj->{$z[50]}.$z[516].$ll})||$lk eq$ll){if(defined
&{$fl}){&{$fl}($lj);exit;}else{&{$ab{$z[515]}{$ll}}($lj);exit;
}}}if($lk){die"Unable to execute forced action '$lk' on db '$lj->{'name'}'";
}}sub qy{my$lj=shift;my$ao=&lm($lj);&ln($lj,$ao);}sub qz{my
$lj=shift;my$ao=&lo($lj);&lp($lj,$ao);&lq($z[517],$ao);exit;
}sub ra{my$lj=shift;if(!$ac{$z[518]}){&lr($lj,$z[174]);}my$ao
=&ls($lj);&lq($z[518],$ao);exit;}sub rb{my$lj=shift;my$ao=<($lj);
&lu($lj,$ao);}sub rc{my$lj=shift;&cp;my$lv=&lw($lj);my$lx=&ly($lj,
$lv);&lz($lj,$lv);&ma($lj,$lv);&cr;&mb($lj,$lx);&mc($lj);}sub
rd{my$lj=shift;my($dh,$di);my$md={$z[57]=>$af{$z[519]}{$z[57]},
$z[520]=>1,$z[84]=>'',};$md=&me($lj,$md);foreach(split(/\s+/,$lj->{$z[81]}))
{push(@$di,[$_,$z[271],$md->{$z[84]}]);}my$ap=sub{my$mf=shift;
if(!defined$mf->{$z[521]}&&$mf->{$z[19]}){my$ib=&ho(0,0,0,$mf->{$z[20]},$mf->{$z[19]}-1,$mf->{$z[18]});
$mf->{$z[521]}=&as($ab{$z[98]},$ib);}$mf->{$z[522]}=&as($ab{$z[40]},int($mf->{$z[522]}))
if$mf->{$z[522]};$mf->{$z[66]}=&as($ab{$z[40]},int($mf->{$z[66]}))
if$mf->{$z[66]};$ad{$z[523]}=$ad{$z[523]}eq$z[524]?$z[525]:
$z[524];return&bv($z[123],$mf);};my$ao=&mg($lj,$ap,$md,$dh,
$di);&mh($ao);}sub lm{my$lj=shift;$ad{$z[526]}=$lj->{$z[146]};
$ad{$z[527]}=$lj->{$z[50]};&gi($lj->{$z[148]},{});my($ao)={};
if($lj->{$z[528]}&&&mi($lj)>=$lj->{$z[528]}){&lq($z[529],$lj);
}my($hy,$gx,$gy)=(localtime(&at($^T)))[3,4,5];$gx++;$gy+=1900;
$ao->{"day_$hy".$z[530]}=$z[531];$ao->{"mon_$gx".$z[530]}=$z[531];
$ao->{"year_$gy".$z[530]}=$z[531];foreach(split(/ /,$lj->{$z[76]}))
{if(/^ufile/&&!$ao->{$_}){$ao->{$_}=$z[532];}}$ao->{$z[522]}
=&as($ab{$z[40]},&at($^T));$ao->{$z[66]}=&as($ab{$z[40]},&at($^T));
$ao->{$z[533]}=$ai{$z[50]}||"unknown user";$ao->{$z[534]}=$ai{$z[50]}
||"unknown user";return$ao;}sub ln{my($lj,$ao)=@_;if($ab{$z[134]}{$z[135]}{$z[535]})
{&lq($z[535],$ao);}else{&lq($z[517],$ao);}exit;}sub lo{my$lj
=shift;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};
&gi($lj->{$z[148]},{});my($kq)=int$ag{$lj->{$z[50]}.$z[536]};
my$ao={};&mj($lj,$ao,$kq)||&ak($z[537],$kq);return$ao;}sub
lp{my($lj,$ao)=@_;foreach(split(/ /,$lj->{$z[76]})){if(/^ufile/
&&!$ao->{$_}){$ao->{$_}=$z[532];}}foreach(keys%{$ao}){$ao->{$_}
=&gk($ao->{$_});}foreach(keys%{$ao}){if(!/\W/&&$ao->{$_}!~/\W/)
{$ao->{$_.$z[516].$ao->{$_}.$z[538]}=$z[539];$ao->{$_.$z[516].$ao->{$_}.$z[530]}
=$z[531];}}$ao->{$z[522]}=&as($ab{$z[40]},&at($ao->{$z[522]}))
if$ao->{$z[522]};$ao->{$z[66]}=&as($ab{$z[40]},&at($ao->{$z[66]}))
if$ao->{$z[66]};my%mk;&mj($ae{$z[195]},\%mk,$ao->{$z[533]})
if$ao->{$z[533]};$ao->{$z[533]}=$mk{$z[50]}||"unknown user";
&mj($ae{$z[195]},\%mk,$ao->{$z[534]})if$ao->{$z[534]};$ao->{$z[534]}
=$mk{$z[50]}||"unknown user";return$ao;}sub ls{my$lj=shift;
$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};&gi($lj->{$z[148]},
{});my($kq)=int($ag{$lj->{$z[50]}.$z[540]})||int($ag{$z[48]});
my($ao)={};&mj($lj,$ao,$kq)||&ak($z[537],$kq);return$ao;}sub
lt{my$lj=shift;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};
&gi($lj->{$z[148]},{});my($kq)=$ag{$z[48]}||$ag{$lj->{$z[50]}.$z[540]};
my$ao={};&cp();&mj($lj,$ao,$kq)||&ak($z[537],$kq);&ml($lj,$kq)
||die($z[541].$kq);&cr();foreach(split(/ /,$lj->{$z[76]})){
if(/^ufile/&&$ao->{$_}){if(-e"$ac{'dir_upload'}/$ao->{$_}")
{unlink("$ac{'dir_upload'}/$ao->{$_}");}}}if(defined&{$lj->{$z[172]}})
{&{$lj->{$z[172]}}($kq,$z[174],$ao);}return$ao;}sub lu{my($lj,
$ao)=@_;if(!$ac{$z[542]}){&lr($lj,$z[175]);}&lq($z[543],$ao);
exit;}sub lw{my$lj=shift;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}
=$lj->{$z[50]};&gi($lj->{$z[148]},{});my($kq)=int($ag{$z[48]});
my$lv={};if($lj->{$z[528]}){my($bk)=&mi($lj);if($kq&&$bk>$lj->{$z[528]})
{&lq($z[529],$lj);}elsif(!$kq&&$bk>=$lj->{$z[528]}){&lq($z[529],$lj);
}}if($kq){&mj($lj,$lv,$kq)||die("ui_save : Can't find record #$kq");
}return($lv);}sub ly{my($mf)=$_[0]->{$z[50]}||die($z[544]);
my($kq)=int($ag{$z[48]});my(%mf)=%{$_[1]||{}};my(%ez,%ft,$en,%lx,%ao);
if(!$ac{$z[545]}){die("ui_save_uploads: No upload directory has been defined in setup options!\n");
}if(!-d$ac{$z[545]}){die("ui_save_uploads: Upload directory '$ac{'dir_upload'}' doesn't exist!\n");
}if(!-w$ac{$z[545]}){die("ui_save_uploads: Upload directory isn't writable!\n");
}%ez=&az($ac{$z[545]});foreach(split(/ |\,/,$ac{$z[546]})){
$ft{$_}++if$_;}foreach$en(split(/ /,$_[0]->{$z[76]})){if($en
!~/^ufile/){next;}if($ag{$en}){if($ac{$z[547]}&&length($ag{$en})
>$ac{$z[548]}*1000){my$mm=length($ag{$en});$lx{$z[549]}.=qq|$ag{$en."_file"} ($mm bytes, file too large)
\n|;
$ag{$en}=$mf{$en};next;}if(!$ft{lc$ag{$en.$z[314]}}){$lx{$z[549]}
.=qq|$ag{$en."_file"} ('$ag{$en.'_ext'}' files not accepted)
\n|;
$ag{$en}=$mf{$en};next;}if($mf{$en}&&$ez{$mf{$en}}){unlink("$ac{'dir_upload'}/$mf{$en}");
}my($mn);my($mo)=lc$ag{$en.$z[313]};my($mp)=lc$ag{$en.$z[314]};
my($mq)=$z[550];$mo=~s/\.[^\.]*$//g;$mo=~s/[^a-z0-9_\-]/_/g;
$mp=~s/[^a-z0-9_\-]/_/g;$mn="$mo.$mp";if(-e"$ac{'dir_upload'}/$mn")
{do{$mq=sprintf($z[410],++$mq);$mn=$mo."_$mq.$mp";}while(-e
"$ac{'dir_upload'}/$mn");}open(AB,">$ac{'dir_upload'}/$mn")
||die($z[551]."$mn $!\n");binmode AB;print AB$ag{$en};close(AB);
if($mn=~/\.(gif|jpg|jpeg|png)$/i){my($jc,$jd,$mr)=&ms("$ac{'dir_upload'}/$mn");
if(($ac{$z[552]}&&$jd>$ac{$z[552]})||($ac{$z[553]}&&$jc>$ac{$z[553]}))
{unlink("$ac{'dir_upload'}/$mn");$lx{$z[549]}.=qq|$ag{$en."_file"} (${jd}x$jc, image too big)
\n|;
$ag{$en}=$mf{$en};next;}}$ag{$en}=$mn;}elsif($ag{$en.$z[313]})
{if($mf{$en}&&$ez{$mf{$en}}){unlink("$ac{'dir_upload'}/$mf{$en}");
}$mf{$en}='';}else{$ag{$en}=$mf{$en};}}return\%lx;}sub lz{my
($lj,$lv)=@_;my($kq)=int($ag{$z[48]});$ag{$z[522]}=$kq?$lv->{$z[522]}
:$^T;$ag{$z[533]}=$kq?$lv->{$z[533]}:$ai{$z[48]};$ag{$z[554]}
=$kq?$lv->{$z[554]}:$ai{$z[48]};$ag{$z[66]}=$^T;$ag{$z[534]}
=$ai{$z[48]};my$mt;foreach$mt($lj->{$z[76]}=~/\bufile([^ ]*)\b/g)
{if($lj->{$z[76]}=~/\bimagewidth\Q$mt\E\b/){($ag{$z[555].$mt},
$ag{$z[556].$mt})=&ms($ac{$z[545]}.$ag{$z[557].$mt});}}}sub
ma{my($lj,$lv)=@_;my($kq)=int($ag{$z[48]});if($kq){&dz($lj,
\%ag,$kq);}else{$ag{$z[48]}=&ef($lj,\%ag,$kq);}if(defined&{$lj->{$z[172]}})
{&{$lj->{$z[172]}}($ag{$z[48]},$z[558],$lv);}}sub mb{my($lj,
$lx)=@_;if(keys%{$lx}){undef$ac{$z[548]}if!$ac{$z[547]};$lx->{$z[48]}
=$ag{$z[48]};$lx->{$z[559]}=&bv($z[559],\%ac)if$ac{$z[548]};
$lx->{$z[560]}=&bv($z[560],\%ac)if$ac{$z[552]};$lx->{$z[561]}
=&bv($z[561],\%ac)if$ac{$z[553]};$lx->{$z[562]}=&bv($z[562],
{$z[546]=>$ac{$z[546]}?$ac{$z[546]}:$z[563]});&lq($z[564],$lx);
exit;}}sub mc{my($lj)=@_;if(!$ac{$z[565]}){&lr($lj,$z[175]);
}&lq($z[566],\%ag);exit;}sub mh{my$ao=shift;&lq($z[175],$ao);
exit;}sub me{my($lj,$md)=@_;$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}
=$lj->{$z[50]};if(ref($lj)ne$z[229]){die$z[567]."\n";}&gi($lj->{$z[148]},
{});if($ag{$lj->{$z[50]}.$z[568]}){my$mu={};while($ah{$lj->{$z[50]}.$z[569]}
=~/(.*?)\t(.*?)\t/g){$mu->{$1}=$2;}$md->{$z[57]}=$ag{$z[570]}
||$mu->{$z[57]};}else{while($ah{$lj->{$z[50]}.$z[569]}=~/(.*?)\t(.*?)\t/g)
{$md->{$1}=$2;}foreach(keys%{$md}){if(defined$ag{$z[516].$_})
{if($_ ne$z[57]&&$_ ne$z[520]){$md->{$z[520]}=1;}$md->{$_}=
$ag{$z[516].$_};}}}&mv($lj->{$z[50]}.$z[569],join("\t",map{
$_,$md->{$_}}keys%{$md})."\t");foreach(keys%{$md}){$ad{$z[516]
.$_}=$md->{$_};$ad{$z[516].$_.$z[516].$md->{$_}.$z[530]}=$z[531];
}return$md;}sub mg{my($lj,$ap,$md,$dh,$di)=@_;my%ao;my$jf=sub
{$ao{$z[571]}.=&{$ap}(@_);};($ao{$z[572]},$ao{$z[573]},$ao{$z[574]},
$ao{$z[575]},$ao{$z[576]},$ao{$z[577]})=&mw($lj,$jf,$md->{$z[520]},
$md->{$z[57]},$dh,$di);unless($ao{$z[571]}){if($ab{$z[134]}{$z[135]}{$z[578]}
&&scalar grep{$_ ne$z[57]&&$_ ne$z[520]&&$md->{$_}ne''}keys
%{$md}){$ao{$z[571]}=&bv($z[578],{});}else{$ao{$z[571]}=&bv($z[129],
{});}}return\%ao;}sub cm{my$lj=shift;my($dh,$di);my$md={$z[57]
=>$af{$z[519]}{$z[57]},$z[520]=>1,$z[84]=>'',};$md=&me($lj,
$md);foreach(split(/\s+/,$lj->{$z[81]})){push(@$di,[$_,$z[271],
$md->{$z[84]}]);}my$ap=sub{my$mf=shift;$mf->{$z[579]}=$aj[$mf->{$z[580]}];
if(!defined$mf->{$z[521]}&&$mf->{$z[19]}){my$ib=&ho(0,0,0,$mf->{$z[20]},$mf->{$z[19]}-1,$mf->{$z[18]});
$mf->{$z[521]}=&as($ab{$z[98]},$ib);}$mf->{$z[522]}=&as($ab{$z[40]},int($mf->{$z[522]}))
if$mf->{$z[522]};$mf->{$z[66]}=&as($ab{$z[40]},int($mf->{$z[66]}))
if$mf->{$z[66]};$ad{$z[523]}=$ad{$z[523]}eq$z[524]?$z[525]:
$z[524];return&bv($z[123],$mf);};my$ao=&mg($lj,$ap,$md,$dh,
$di);&mh($ao);}sub re{my$lj=shift;&cp();my$lv=&lw($lj);my$lx
=&ly($lj,$lv);&lz($lj,$lv);my%mx;if(&mz($lj,\%mx,$z[581],$ag{$z[581]}))
{if($mx{$z[48]}!=$lv->{$z[48]}){&cr();&lq($z[582],\%ag);}}if
($ag{$z[48]}==$ai{$z[48]}&&$ag{$z[580]}<9){&cr();&lq($z[583],
{});}&ma($lj,$lv);my%na;if(&mz($ae{$z[200]},\%na,$z[48],$ag{$z[48]}))
{&dz($ae{$z[200]},\%ag,$ag{$z[48]});}&cr();&mb($lj,$lx);&mc($lj);
}sub rf{my$lj=shift;if(!$ac{$z[518]}){&lr($lj,$z[174]);}my$ao
=&ls($lj);if($ao->{$z[48]}==$ai{$z[48]}&&$ag{$z[580]}<9){&lq($z[583],
{});}&lq($z[518],$ao);}sub cl{my$lj=shift;my$kq=$ag{$z[48]}
||$ag{$lj->{$z[50]}.$z[540]};if($kq==$ai{$z[48]}&&$ag{$z[580]}
<9){$ad{$z[526]}=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};
&gi($lj->{$z[148]},{});&lq($z[583],{});}&cp();&mj($ae{$z[195]},
{},$ai{$z[48]})||&nb($z[584],{});my$ao=<($lj);&ml($ae{$z[200]},
$kq);&cr();&lu($lj,$ao);}sub nv{my$jm=shift;if($ac{$z[585]}
eq$z[586]){my%jn=(host=>$ac{$z[587]},helo=>$af{$z[588]}{$z[589]},
timeout=>$af{$z[588]}{$z[590]},pop3_auth=>$ac{$z[591]},pop3_host
=>$ac{$z[592]},pop3_user=>$ac{$z[593]},pop3_pass=>$ac{$z[594]});
&nc($jm,\%jn)||die("Error sending message: $ab{'error'}");}
elsif($ac{$z[585]}eq$z[595]){if(!-e$ac{$z[596]}){die("sendmail: can't find sendmail program '$ac{'mail_sendmail'}'\n");
}local(*AL);my($jx)=&jo($jm);open(AL,"|$ac{'mail_sendmail'} -f $jx -t")
||die"Can't open $ac{'mail_sendmail'} : $!";print AL$jm;close(AL);
}elsif(!$ac{$z[585]}){die("sendmail: no mailer specified in setup options!\n");
}else{die("sendmail: unknown mailer '$ac{'mail_mailer'}' specified!\n");
}}sub rg{my($fi)=$_[0];my($nd)=$ag{$z[597]}||die("browse: you must pass a name/value for the 'fieldname'!\n");
my(%ao,$fj);if($fi ne$z[598]&&$fi ne$z[599]){die("browse: the first argument must be either 'dir' or 'file'!\n");
}if($ag{$z[600]}){&ne($z[601].$z[602].$ab{$z[0]}.$z[603]);}
if($ag{$z[604]}){&ne($z[605].$z[602].$ab{$z[0]}.$z[603]);}if
($ag{$z[598]}){&ne($z[606].$z[602].$ab{$z[0]}.$z[603]);}if(!-d
$ac{$z[607]}){delete$ac{$z[607]};}if($ag{$z[608]}){if(-f$ag{$z[608]})
{$ag{$z[608]}=~s!^(.+)(\\|/).*?$!$1!;}if(-d$ag{$z[608]}){$ag{$z[598]}
=$ag{$z[608]};}}if($af{$z[609]}){$ag{$z[598]}=$ac{$z[607]};
}&gi("_browse_$fi.html",{});my$nf="/";$ao{$z[597]}=$ag{$z[597]};
if($ag{$z[600]}){$ao{$z[610]}=$ag{$z[610]};if(!$ag{$z[610]})
{$ad{$z[611]}=$z[612];}elsif($ag{$z[610]}=~m/[^\w\-]/i){$ad{$z[611]}
=$z[613];}elsif(!mkdir("$ag{'cdir'}$nf$ag{'mkdir_name'}",0777)){
$ad{$z[611]}=$z[614].$!;}if($ad{$z[611]}){$ad{$z[611]}=&bv($z[611],\%ad);
}}if($ag{$z[604]}){local(*AB);$ao{$z[615]}=$ag{$z[615]};if(!$ag{$z[615]})
{$ad{$z[616]}=$z[617];}elsif($ag{$z[615]}=~m/[^\w\-\.]/i){$ad{$z[616]}
=$z[618];}elsif(-e"$ag{'cdir'}$nf$ag{'mkfile_name'}"){$ad{$z[616]}
=$z[619];}elsif(!open(AB,">$ag{'cdir'}$nf$ag{'mkfile_name'}"))
{$ad{$z[616]}=$z[620].$!;}close(AB);if($ad{$z[616]}){$ad{$z[616]}
=&bv($z[616],\%ad);}}$ao{$z[598]}=$ag{$z[598]}||$ac{$z[607]}
||$ab{$z[512]};$ao{$z[598]}=~s/^(.+)(\\|\/)+$/$1/;$ao{$z[621]}
=$ao{$z[598]};$ao{$z[621]}=~s!^([a-z]:)!$1/..!i;$ao{$z[622]}
=($ao{$z[598]}=~m#^(.*)[\\/]#,$1||$nf);$ao{$z[623]}=&gj($ao{$z[622]});
$ao{$z[175]}.=&bv($z[622],\%ao)if($ao{$z[598]}=~m!.+(\\|/)!);
if(!-e$ao{$z[598]}){$ao{$z[489]}=$z[624];}elsif(!-r$ao{$z[598]})
{$ao{$z[489]}=$z[625];}if($ao{$z[489]}){print"Content-type: text/html\n\n"
unless($ab{$z[626]}++);$ao{$z[175]}.=&bv($z[489],\%ao);print
&gi($z[627],\%ao);exit;}opendir(AC,"$ao{'dir2'}");my@fj=sort
{lc$a cmp lc$b}grep(!/^\.+$/,readdir(AC));closedir(AC);my($az);
foreach$az(@fj){-d"$ao{'dir'}$nf$az"||next;$ao{$z[50]}=$az;
$ao{$z[628]}="$ao{'dir'}$nf$az";$ao{$z[628]}=~s/$nf+/$nf/g;
$ao{$z[629]}=&gj($ao{$z[628]});($ao{$z[630]},$ao{$z[631]})=
(stat($ao{$z[628]}))[7,9];next if$ao{$z[631]}eq"";$ao{$z[632]}
=&as($ab{$z[40]},$ao{$z[631]});$ao{$z[175]}.=&bv($z[598],\%ao);
$fj++;}my($ez);foreach$ez(@fj){-d"$ao{'dir'}$nf$ez"&&next;$ao{$z[50]}
=$ez;$ao{$z[628]}="$ao{'dir'}$nf$ez";($ao{$z[630]},$ao{$z[631]})
=(stat($ao{$z[628]}))[7,9];next if$ao{$z[631]}eq"";if($ao{$z[630]})
{$ao{$z[630]}=(int($ao{$z[630]}/1000)||1)."KB";}else{$ao{$z[630]}
="0KB";}$ao{$z[632]}=&as($ab{$z[40]},$ao{$z[631]});$ao{$z[628]}
=~s/'/\\'/g;$ao{$z[628]}=~s/\\/\\\\/g;if(-f"$ao{'dir'}$nf$ez")
{$ao{$z[175]}.=&bv($z[599],\%ao);}else{$ao{$z[175]}.=&bv($z[633],\%ao);
}$fj++;}if(!$fj){$ao{$z[175]}.=&bv($z[634],{});}print"Content-type: text/html\n\n"
unless($ab{$z[626]}++);print&gi("_browse_$fi.html",\%ao);exit;
}sub rh{my($kb,$ke);if($ENV{$z[307]}=~/^[\w\-]+\.gif$/){$kb
=$z[635]."\n\n";}elsif($ENV{$z[307]}=~/^[\w\-]+\.jpg$/){$kb
=$z[636]."\n\n";}else{return;}$ke=&gi($ENV{$z[307]},{},$z[323]);
if($ke){binmode(STDOUT);print$kb ;print$ke ;exit;}}sub at{my
$ib=$_[0]||die("time_adj: first argument must be time()\n");
if($ac{$z[637]}eq$z[535]){$ib+=$ac{$z[638]}*60*60;}if($ac{$z[637]}
eq$z[639]){$ib-=$ac{$z[638]}*60*60;}if($ac{$z[640]}eq$z[535])
{$ib+=$ac{$z[641]}*60;}if($ac{$z[640]}eq$z[639]){$ib-=$ac{$z[641]}*60;
}return$ib;}sub ri{my($ap,$ng,$nh,$ni,%na);my(%ao,%nj);if(!$ag{$z[642]}
&&!$ah{$z[581]}){&nb(undef,\%ao);}if($ag{$z[642]}){($ng,$nh)
=(lc$ag{$z[581]},lc$ag{$z[643]});if(!$ng&&!$nh){&nb($z[584],
\%ao);}if(!$ng||!$nh){&nb($z[584],\%ao);}$ap=sub{if(lc$nj{$z[581]}
eq$ng&&lc$nj{$z[643]}eq$nh){$ni=$nj{$z[48]};}};&av($ae{$z[195]},
$ap,\%nj);if(!$ni){&nb($z[584],\%ao);}&mj($ae{$z[195]},\%nj,
$ni);$nj{$z[522]}=$^T;$nj{$z[66]}=$^T;&dz($ae{$z[200]},\%nj,
$ni);}else{($ng,$nh)=(lc$ah{$z[581]},lc$ah{$z[643]});if(!$ng
||!$nh){&nb($z[644],\%ao);}$ap=sub{if(($af{$z[645]}&&$nj{$z[66]}
<$^T-60*$af{$z[645]})||$nj{$z[66]}<$^T-60*60*24){&ml($ae{$z[200]},
$nj{$z[48]});}elsif(lc$nj{$z[581]}eq$ng&&lc$nj{$z[643]}eq$nh)
{$ni=$nj{$z[48]};}};&av($ae{$z[200]},$ap,\%nj);if(!$ni){&nb($z[644],
\%ao);}&mj($ae{$z[200]},\%nj,$ni);$nj{$z[66]}=$^T;&dz($ae{$z[200]},
\%nj,$ni);}&mv($z[581],$ng);&mv($z[643],$nh);return%nj;}sub
nb{if(!$ab{$z[626]}++){print$z [646]."\n\n";}my($ex)=$_[0];
my(%ao)=%{$_[1]||{}};&gi($z[647],{});foreach(keys%ao){$ao{$_}
=&fm($ao{$_});}if($ex&&!$ab{$z[134]}{$z[135]}{$ex}){die($z[648]."'$ex' isn't defined!\n");
}if($ex){$ao{$z[549]}=&bv($ex,\%ao);}print&bv($z[649],{});if
($ex){print&bv($z[650],\%ao);}else{print&bv($z[642],\%ao);}
print&bv($z[651],{});if($ab{$z[488]}){print"
";print"
$ab{'debug_output'}"
if($ab{$z[303]});}&nk();exit;}sub rj{&gi($z[647],{});&mv($z[581],'');
&mv($z[643],'');$ac{$z[652]}=~s/^\s+|\s+$//g;if($ac{$z[652]}
&&$ENV{$z[307]}=~/logoff/i){print"Content-type: text/html\n\n";
print qq|Stack Trace ($fl) called from ($ez) line ($ea) ";print" $px")],
$z[508]=>[("Warning: Persistent Filelock!","This web application uses 'file locks' to ensure than only one user can update data at a time. The program was halted while in the middle of writing/accessing data because it could not obtain a filelock. Please ask your server administrator to fix the permissions (you need read-write access on your data directory). For your reference, the filelock error was: '$px'.")],
$z[511]=>[($z[827],$z[828])],$z[829]=>[("Warning: Program corrupted during upload!",
"This is usually caused by Mac FTP clients that have an \"Translate ISO characters\" setting enabled. If you are using a Mac, try disabling this setting and re-uploading all the files, otherwise, contact support for assistance. ")],
$z[830]=>[("Publishing Error","The program cannot create or write to the file: The error was: $px",
$qb)],);my($qc)=$ad{$z[836]}||$pz{$fi}[0]||"Program Message";
if($pz{$fi}[0]){$qa=$pz{$fi}[0];$lx=$pz{$fi}[1];}elsif($px&&
$fi){$qa=&fm($fi);$lx=$px;}else{$qa="Program Message";$lx=&fm($fi);
}if(!$pz{$fi}[1]){$lx=~s/\n/ Stack Trace ($fl) called from ($ez) line ($ea) /\n\n/gm;
}foreach($qa,$lx){s/<[^>]*>//gm;}print"\n$ab{'prog_name'} v$ab{'prog_ver'}\n$qa\n$lx\n";
}else{if(!$ab{$z[626]}++){print"Cache-Control: no-cache\nPragma: no-cache\nExpires: -1\n";
print"Content-type: text/html\n\n";}my$qd=$z[837]if$py;print
qq|\n\n ";print"
";
my$cz=0;while(my($ez,$ea,$fl)=(caller($cz++))[1,2,3]){print
qq!
\n!;}}if($ab{$z[488]})
{print"$ab{'debug_output'}"if($ab{$z[303]});
}&nk();exit;}sub nk{print$z [736]."\n";print$ad {$z[723]}.$z[737]
.$ab{$z[4]}.$z[738].$ab{$z[739]}.$z[29].$ab{$z[740]}.")\n";
print$z [741].$ad{$z[715]}.$z[742].$ad{$z[711]}.$z[742].$ad{$z[712]}
."\n";printf($z[743]."\n",time()-$^T);print$z [744]."\n";}sub
rn{my(@fj)=map"$ab{'datadir'}$ae{$_}{'datafile'}",keys%ae;my(@oi)
=($ab{$z[745]});my($az,$ez,$oj);foreach$az(sort@oi){if($az
eq""){next;}if(!-d$az||!-w$az){$oj.="$az\n";}}foreach$ez(sort
@fj){$ez=~s/\\/\//g;1 while$ez=~s!/[^/]+/\.\./!/!;if(-f$ez&&
!-w$ez){$oj.="$ez\n";}}if($oj){&ak($z[746],$oj);}}sub nx{return
unless$af{$z[609]};my$jm=shift;&nb($z[747],{$z[549]=>$jm});
}sub ne{return unless$af{$z[609]};my$jm=shift;$jm=&gj($jm);
print"Content-type: text/html\n\n";print qq|\n|
;exit;}sub ro{&gi($ae{$z[202]}{$z[148]},{});my%ok;my$ol;foreach
$ol(keys%{$ab{$z[748]}}){my%ao=($z[749]=>$ol,$z[750]=>$ab{$z[748]}{$ol}
);$ok{$ol}[0]=&bv($z[751],\%ao);$ok{$ol}[1]=&bv($z[752],\%ao);
}foreach$ol(keys%{$ab{$z[748]}}){my$om=join'',map{$ok{$_}[$ol
==$_?1:0]}sort keys%{$ab{$z[748]}};$ad{$z[753].$ol}=&bv($z[754],
{$z[755]=>$om});}}1;;sub rp{my$on=shift||die("ip2num : no ip or host specified!\n");
my($a,$b,$oo,$op,$kq);if($on=~/[^0-9\.]/){my$jz=gethostbyname("$on.")
||die("ip2num: Can't find IP for host '$on'!\n");($a,$b,$oo,$op)
=unpack($z[756],$jz);}else{($a,$b,$oo,$op)=split(/\./,$on);
}$kq+=$op*(256**0);$kq+=$oo*(256**1);$kq+=$b*(256**2);$kq+=
$a*(256**3);return$kq;}sub rq{my$kq=shift||die("num2ip : no number specified!\n");
my($a,$b,$oo,$op);$a=($kq/256**3)% 256;$b=($kq/256**2)% 256;
$oo=($kq/256**1)% 256;$op=($kq/256**0)% 256;return join$z[29],
$a,$b,$oo,$op;}sub rr{my$ib=shift||time();$ib-=(localtime($ib))[6]
* 60*60*24;$ib-=(localtime($ib))[2]* 60*60;$ib-=(localtime($ib))[1]
* 60;$ib-=(localtime($ib))[0]* 1;return$ib;}sub rs{my$ib=shift
||time();$ib-=(localtime($ib))[2]* 60*60;$ib-=(localtime($ib))[1]
* 60;$ib-=(localtime($ib))[0]* 1;return$ib;}sub rt{my$gt=int
shift;my$gu=int($gt/60);my$gv=int($gu/60);$gu%=60;$gt%=60;return
sprintf("%01d:%02d:%02d",$gv,$gu,$gt);}sub ru{my$kq=reverse
int shift;$kq=~s/(...)\B/$1,/g;return reverse$kq;}sub bz{my
$kq=shift;if($kq==int($kq)){return$kq;}elsif($kq<0){return
int$kq;}else{return int($kq)+1;}}sub rv{my$kq=shift;if($kq==
int($kq)){return$kq;}elsif($kq<0){return int($kq)-1;}else{return
int$kq;}}sub ca{return(sort{$a<=>$b}@_)[0];}sub rw{return(sort
{$a<=>$b}@_)[-1];}1;;sub aw{local(*AB);my($ez,%fc,$gc,$gd);
%fc=%{$_[1]}if$_[1];my$oq=$_[3];my%ge;%ge=($z[321]=>0,$z[322]
=>0,$z[323]=>0,$z[53]=>0,$z[332]=>0);foreach(split(/ /,$_[2]))
{if(undef$ge{$_}){die($z[324]."'$_'\n");}$ge{$_}=1;}unless($ge{$z[321]})
{$ge{$z[322]}=1;}if(!$_[0]){die$z[325]."\n";}if(ref($_[1])ne
$z[229]){die$z[757]."\n";}if((!$ge{$z[322]}||!$ab{$z[134]}{$z[322]}{$_[0]})
){if(-e"$_[0]"){$ez=$_[0];}else{foreach(grep/^templatedir/,
sort keys%ab){if(-e"$ab{$_}/$_[0]"){$ez="$ab{$_}/$_[0]";last;
}}if(!$ez){die$z[327]."'$_[0]'".$z[328]."\n";}}}if($ge{$z[322]}
&&$ab{$z[134]}{$z[322]}{$_[0]}){$gc=$ab{$z[134]}{$z[322]}{$_[0]};
}else{open(AB,"<$ez")||die$z[329]."$ez! $!\n";binmode(AB)if
($ez=~/gif$/i||$ez=~/jpg$/i);read(AB,$gc,-s AB);close(AB);}
if($ge{$z[323]}){return$gc;}if(!$ge{$z[322]}||!$ab{$z[134]}{$z[322]}{$_[0]})
{foreach$gd($gc=~m//g)
{$ab{$z[134]}{$z[135]}{"$oq$1"}=$2 if($gc=~m/(?:\r\n|\n)?(.*?)/is);
}$gc=~s/(?:\r\n|\n)?(.*?)//gis;
if($ge{$z[322]}){$ab{$z[134]}{$z[322]}{$_[0]}=$gc;}}if($ge{$z[53]})
{while($gc=~//i){my$or=$1;
my$gf=$or;$gf=~s/\$(\w+?)\$/defined$ad{$1}?$ad{$1}:$fc{$1}/eg;
unless($gf){$gc=~s///;next;
}if($gf=~m!^/!){;}else{if($_[4]){$gf="$_[4]$gf";}else{$gf=($ez
=~m!(.*/)!)[0].$gf;}}my$gh;if(not$ab{$z[134]}{$z[758]}{$gf}++)
{my$os;if(-e"$gf"){$os++;}else{foreach(grep/^templatedir/,sort
keys%ab){if(-e"$ab{$_}/$gf"){$os++;last;}}}if($os){$gh=&aw($gf,
$_[1],"$_[2] inside_ssi",$z[759],$_[4]);}else{$gh="[ Program Error - Could not include file \"$gf\" via template include ]";
}}else{$gh="[ Program Error - Cyclic Include - The file '$gf' is included by itself (perhaps indirectly). Please check include files for other Include statements. ]";
}$gc=~s//$gh/;delete$ab{$z[134]}{$z[758]}{$gf};
}}else{$gc=~s///gi;}$gc=~s//$1/gi;
$gc=~s[\$(\w+?)(_ue|_he|_nbsp|_je)?\$][my$ep=defined$ad{$1}
?$ad{$1}:$fc{$1};if($2 eq$z[333]){$ep=&gj($ep);}if($2 eq$z[334])
{$ep=&gk($ep);}if($2 eq$z[335]){$ep=&gk($ep);$ep=~s/ / /g;
}if($2 eq$z[336]){$ep=&gl($ep);}$ep;]ge;return$gc;}sub bs{my
($ia,$bl,$oq)=@_;$ia=~s|
(\s*\*\*\*image\d+(?:\:(\w+))?\*\*\*)|
$1|gsi;
$ia=~s[\s*\*\*\*image(\d+)(?:\:(\w+))?\*\*\*\s*][if($2 eq$z[760])
{$bl->{$z[120].$1}}else{my%ot;$ot{$z[761]}=$2||$af{$z[762]}{$z[763]}
||$z[764];$ot{$z[765]}=$bl->{$z[120].$1};$ot{$z[766]}=$bl->{$z[121]
.$1};$ot{$z[767]}=$bl->{$z[68].$1};$ot{$z[768]}=$bl->{$z[69]
.$1};&bv($oq.($ot{$z[766]}ne''?$z[766]:$z[769]),\%ot);}]eigo;
return$ia;}sub rx{my($ao,$bl,$oq,$ou,$ov,@ow)=@_;$ao->{$z[87]}
=&bs($ou,$bl,$oq);$ao->{$z[89]}=&bs($ov,$bl,$oq);my$cz;for$cz
(1..$ab{$z[6]}){$ao->{$z[122].$cz}=&bs($ow[$cz-1],$bl,$oq);
}}sub ry{my($ao,$ou,$ov,@ow)=@_;($ao->{$z[87]}=$ou)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;
($ao->{$z[89]}=$ov)=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;
my$cz;for$cz(1..$ab{$z[6]}){($ao->{$z[122].$cz}=$ow[$cz-1])
=~s/\s*\*\*\*image\d+(\:\w+)?\*\*\*\s*//g;}}sub rz{my$gc=shift;
my$ib=$ad{$z[39]}||&as($ab{$z[40]},$ac{$z[39]}||$^T);my$ox=
$z[770].$ab{$z[0]}.$z[771];$$gc=$z[772].$ib.$z[773].$ab{$z[0]}
.$z[774]."\n\n".$$gc;unless($$gc=~s/(]+>)/$ox\n$1/is)
{$$gc=~s/(]*>)/$1\n$ox\n/i;}}sub ho{my$jf;eval{local
$SIG{$z[775]}=undef;local$SIG{$z[776]}=undef;$jf=timelocal(@_);
};if($@){$jf=0;}return$jf;}sub hn{my$jf;eval{local$SIG{$z[775]}
=undef;local$SIG{$z[776]}=undef;$jf=timegm(@_);};if($@){$jf
=0;}return$jf;}sub sa{if(!$ac{$z[777]}||(scalar(@{$ab{$z[778]}})
<1)){return;}my$bl=shift;my%oy=%{$bl};my($oz,$pa,$pb,$pc)=(1..4);
if($ab{$z[488]}){if(scalar(@{$ab{$z[778]}})>1){my%pd=map{$_,
1}("$oz,$pa","$pa,$pb","$pa,$pc");my$pe=join($z[779],sort{$a
<=>$b}@{$ab{$z[778]}});unless(exists$pd{$pe}){&ak("Invalid notification events combination: $pe");
}}}my%pf;@pf{$z[522],$z[632]}=(split(/\s*,\s*/,$af{$z[780]}{$z[781]}));
$pf{$z[522]}||=$z[522];$pf{$z[632]}||=$z[632];my@pg=($z[782],
split(/\s*,\s*/,$af{$z[780]}{$z[783]}));$pg[1]||=$z[784];$pg[2]
||=$z[785];$pg[3]||=$z[45];$pg[4]||=$z[543];my%au;&mj($ae{$z[15]},
\%au,$oy{$z[15]});my$ph=$au{$z[70]}?$au{$z[27]}:$ac{$z[27]};
my(@br,$bi);$oy{$z[786]}=$ai{$z[50]};$oy{$z[787]}=(grep/^$oz$/,
@{$ab{$z[778]}})?$pf{$z[522]}:$pf{$z[632]};$oy{$z[80]}=(grep
/^$pc$/,@{$ab{$z[778]}})?$pg[4]:$pg[$bl->{$z[80]}];foreach(keys
%oy){$oy{$z[86].$_}=$oy{$_};}foreach(1..$ab{$z[6]}){$oy{$z[122]
.$_}=$oy{$z[91].$_};}$oy{$z[24]}=$ac{$z[25]};$oy{$z[27]}=$ph;
$oy{$z[26]}=$ph.$ac{$z[28]}.$z[29].$ac{$z[30]};$oy{$z[31]}=
$ac{$z[32]}.$z[29].$ac{$z[30]};$oy{$z[33]}=$ac{$z[34]}.$z[29]
.$ac{$z[30]};$oy{$z[42]}=$ac{$z[32]}.$oy{$z[788]}.$z[29].$ac{$z[30]};
;$oy{$z[43]}=$ac{$z[44]}.$oy{$z[788]}.$z[29].$ac{$z[30]};$oy{$z[35]}
=$ac{$z[36]}.$z[29].$ac{$z[30]};$oy{$z[37]}=$ac{$z[38]}.$z[29]
.$ac{$z[30]};$oy{$z[105]}=$ph.($ac{$z[106]}&&$oy{$z[107]}?$ac{$z[108]}
.$oy{$z[107]}:$ac{$z[108]}.$oy{$z[48]}).$z[29].$ac{$z[30]};
$oy{$z[39]}=&as($ab{$z[40]},&at($ac{$z[39]}))if($ac{$z[39]});
@br=($oy{$z[18]},$oy{$z[19]}-1,$oy{$z[20]},$oy{$z[93]}+($oy{$z[94]}
eq$z[95]?12:0),$oy{$z[96]});$oy{$z[97]}=&as($ab{$z[98]},@br);
$oy{$z[99]}=&as($ab{$z[100]},@br);$oy{$z[101]}=$au{$z[50]};
$bi=$au{$z[72]}?$au{$z[73]}:$ac{$z[74]}.$oy{$z[788]};$oy{$z[109]}
=$ac{$z[27]}.$bi.$z[29].$ac{$z[30]};$oy{$z[16]}=$oy{$z[788]};
$oy{$z[41]}=$ac{$z[41]};if($bl->{$z[80]}==2){if($bl->{$z[117]}
==1){$oy{$z[789]}=$oy{$z[110]}=$ph.($ac{$z[106]}&&$oy{$z[790]}
?$oy{$z[107]}:$ac{$z[111]}.$oy{$z[114]}).$z[29].$ac{$z[30]};
}else{$oy{$z[789]}=$oy{$z[110]}=$oy{$z[109]}.$z[718].$bl->{$z[48]};
}}else{$oy{$z[789]}=$oy{$z[110]}=$oy{$z[109]};}$oy{$z[791]}
=$ac{$z[791]};$oy{$z[792]}=$ac{$z[792]}||$ac{$z[791]};my$nr;
local(*AJ);open(AJ,"<$ab{'templatedir1'}/email/notify.txt")
||&ak("Unable to open email template");read(AJ,$nr,-s AJ);close(AJ);
my($ns,$nt);if($nr=~/^\s*Subject: *([^\r\n]*?)(\r\n|\r|\n)\s*Body: *([^ ].*)$/si)
{$ns=$1;$ab{$z[134]}{$z[322]}{$z[793]}=$3;$ns=~s/\$(.*?)\$/$oy{$1}/g;
$nt=&gi($z[793],\%oy,$z[322]);}else{&ak($z[794]);}my$pi=$bl->{$z[15]};
my$pj=$z[795];my@pk;my$ap=sub{my$pl=shift;if($pl->{$z[796]}
||$pl->{$z[797]}=~/(^|,)$pi(,|$)/){if($pl->{$z[580]}==1){return;
}if(!$pl->{$z[780]}||!&nq($pl->{$z[780]})){return;}$pl->{$z[50]}
||=$pl->{$z[780]};my$pm;foreach$pm(split(/,/,$pl->{$z[798]}))
{if(grep/^$pm$/,@{$ab{$z[778]}}){push(@pk,qq|"$pl->{'name'}" <$pl->{'email'}>|);
last;}}}};&av($ae{$z[195]},$ap);if(scalar(@pk)){my$pn;if(length($af{$z[780]}{$z[799]}))
{$pn=qq|To: $af{'email'}{'notifications_to_field'}\n|;}my$po
=join($z[800],@pk);$pn.=qq|Bcc: $po|;my$nu=qq|From: "$oy{'mail_sender_name'}" <$oy{'mail_sender_email'}>\n$pn\nSubject: $ns\n$pj\n|
;&nv("$nu\n$nt");}}sub sb{my$lj=shift;if($lj->{$z[50]}eq$z[13])
{my$pp=(caller)[2];die("Don't call custom_ui_erase to erase an article! Use art_erase instead. Line number of caller: $pp.");
}my$pq;if($ag{$z[801]}){$pq=$ag{$z[48]};}elsif($ag{$z[802]})
{$pq=$ag{$z[802]};}my%au;&mj($ae{$z[15]},\%au,$pq);my$pr=$au{$z[70]}
?$au{$z[545]}:$ac{$z[545]};my$ao=&ps($lj,$pr);&lu($lj,$ao);
}sub ps{my$lj=shift;my$pr=shift;$pr||=$ac{$z[545]};$ad{$z[526]}
=$lj->{$z[146]};$ad{$z[527]}=$lj->{$z[50]};&gi($lj->{$z[148]},
{});my($kq)=$ag{$z[48]}||$ag{$lj->{$z[50]}.$z[540]};my$ao={};
&cp();&mj($lj,$ao,$kq)||&ak($z[537],$kq);&ml($lj,$kq)||die($z[541].$kq);
&cr();foreach(split(/ /,$lj->{$z[76]})){if(/^ufile/&&$ao->{$_})
{if(-e"$pr$ao->{$_}"){unlink("$pr$ao->{$_}");}}}if(defined&{$lj->{$z[172]}})
{&{$lj->{$z[172]}}($kq,$z[174],$ao);}return$ao;}sub sc{my($mf)
=$_[0]->{$z[50]}||die($z[544]);my($kq)=int($ag{$z[48]});my(%mf)
=%{$_[1]||{}};my$pr=$_[2]||$ac{$z[545]};my(%ez,%ft,$en,%lx,%ao);
if(!$pr){die("custom_ui_save_uploads: No upload directory has been defined in setup options or provided by caller!\n");
}if(!-d$pr){die("custom_ui_save_uploads: Upload directory '$pr' doesn't exist!\n");
}if(!-w$pr){die("custom_ui_save_uploads: Upload directory isn't writable!\n");
}%ez=&az($pr);foreach(split(/ |\,/,$ac{$z[546]})){$ft{$_}++
if$_;}foreach$en(split(/ /,$_[0]->{$z[76]})){if($en!~/^ufile/)
{next;}if($ag{$en}){if($ac{$z[547]}&&length($ag{$en})>$ac{$z[548]}*1000)
{my$mm=length($ag{$en});$lx{$z[549]}.=qq|$ag{$en."_file"} ($mm bytes, file too large)
\n|;
$ag{$en}=$mf{$en};next;}if(!$ft{lc$ag{$en.$z[314]}}){$lx{$z[549]}
.=qq|$ag{$en."_file"} ('$ag{$en.'_ext'}' files not accepted)
\n|;
$ag{$en}=$mf{$en};next;}if($mf{$en}&&$ez{$mf{$en}}){unlink("$pr$mf{$en}");
}my($mn);my($mo)=lc$ag{$en.$z[313]};my($mp)=lc$ag{$en.$z[314]};
my($mq)=$z[550];$mo=~s/\.[^\.]*$//g;$mo=~s/[^a-z0-9_\-]/_/g;
$mp=~s/[^a-z0-9_\-]/_/g;$mn="$mo.$mp";if(-e"$pr$mn"){do{$mq
=sprintf($z[410],++$mq);$mn=$mo."_$mq.$mp";}while(-e"$pr$mn");
}open(AB,">$pr$mn")||die($z[803]."$mn $!\n");binmode AB;print
AB$ag{$en};close(AB);if($mn=~/\.(gif|jpg|jpeg|png)$/i){my($jc,$jd,$mr)
=&ms("$pr$mn");if(($ac{$z[552]}&&$jd>$ac{$z[552]})||($ac{$z[553]}
&&$jc>$ac{$z[553]})){unlink("$pr$mn");$lx{$z[549]}.=qq|$ag{$en."_file"} (${jd}x$jc, image too big)
\n|;
$ag{$en}=$mf{$en};next;}}$ag{$en}=$mn;}elsif($ag{$en.$z[313]})
{if($mf{$en}&&$ez{$mf{$en}}){unlink("$pr$mf{$en}");}$mf{$en}
='';}else{$ag{$en}=$mf{$en};}}return\%lx;}sub sd{my($lj,$lv,
$pr)=@_;$pr||=$ac{$z[545]};my($kq)=int($ag{$z[48]});$ag{$z[522]}
=$kq?$lv->{$z[522]}:$^T;$ag{$z[533]}=$kq?$lv->{$z[533]}:$ai{$z[48]};
$ag{$z[554]}=$kq?$lv->{$z[554]}:$ai{$z[48]};$ag{$z[66]}=$^T;
$ag{$z[534]}=$ai{$z[48]};my$mt;foreach$mt($lj->{$z[76]}=~/\bufile([^ ]*)\b/g)
{if($lj->{$z[76]}=~/\bimagewidth\Q$mt\E\b/){($ag{$z[555].$mt},
$ag{$z[556].$mt})=&ms($pr.$ag{$z[557].$mt});}}}1;;%af=&pt("$cd/config.ini");
$ad{$z[804]}=$af{$z[519]}{$z[805]}||"#336699";$ab{$z[745]}=
$af{$z[745]}||$z[806];$ab{$z[508]}=$af{$z[508]}||$z[807];$ab{$z[40]}
=$af{$z[519]}{$z[40]}||$z[808];$ab{$z[98]}=$af{$z[519]}{$z[98]}
||$z[809];$ab{$z[100]}=$af{$z[519]}{$z[100]}||$z[426];&ak($z[810])
if!$ENV{$z[811]};&ak("macftp")if"¡"ne"\xA1";&ak($z[812])if
$ENV{$z[813]}&&!$af{$z[814]};%ab=(%ab,$z[512]=>$cd,$z[815]=>
$cb,$z[816]=>$cb,$z[63]=>$z[817],$z[818]=>$z[819],$z[820]=>
$z[821],$z[626]=>0,);foreach(qw(datadir filelock templatedir1 templatedir2 templatedir3 archive))
{if(ref($ab{$_})){next;}$ab{$_}="$cd/$ab{$_}"if(index($ab{$_},$z[29])
==0);$ab{$_}=~s|\\|/|g;1 while$ab{$_}=~s|/[^/]+/\.\./|/|;}&mj($ae{$z[202]},
\%ac,1);if(!$ac{$z[822]}){&ak($z[823]);}foreach(grep/^dir_/,
keys%ac){$ac{$_}="$cd/$ac{$_}"if index($ac{$_},$z[29])==0;$ac{$_}
=~tr|\\|/|;1 while$ac{$_}=~s|/[^/]+/\.\.||;}foreach(qw(prog_name prog_name2 prog_ver cgidir cgiurl publish_fileext))
{$ad{$z[516].$_}=$ab{$_};}foreach(qw(url_help reg1 reg2 reg3))
{$ad{$z[516].$_}=$ac{$_};}$ad{$z[27]}=$ac{$z[27]};$ad{$z[721]}
=$ac{$z[722]};$ad{$z[723]}=join$z[824],grep{$_}$ab{$z[0]},$ac{$z[724]};
$ad{$z[825]}||=$ac{$z[724]};%ag=&pu;%ah=&pv;}sub ak{my($pw)
=$ad{$z[132]};my($fi,$px,$py)=@_;my(%pz,$lx,$qa);$px=&fm($px);
$ad{$z[826]}||="#336699";%pz=($z[537]=>[("Can't find record # $px",
"The program can't find the specified record number in the database. This is usually because the record has already been erased. Reload the record list and try again.")],
$z[746]=>[("Warning: File/Directory not writeable!","This web application needs to be able to create and update it's data files. Please ask your server administrator to make the following files and directories writeable:
$px
Please ask your server administrator to make sure the publish directory and publish file(s) are writable.")],
$z[812]=>[("Program doesn't support mod_perl","Your server is running $ENV{MOD_PERL}
This program doesn't support mod_perl. Please ask your server administrator to disable mod_perl for this program.")],
$z[810]=>[("This program can only be run through a web server.",
"")],$z[831]=>[($z[832],$z[833])],$z[834]=>[("No such file or directory",
"The program can't find the file or directory it's looking for. Please make sure the following file or directory exists:
$px")],
$z[835]=>[("Permission denied","The program doesn't have permission to access a required file. Please make sure the program has read and write access to the following directories and files:
$px")],
$z[294]=>[("File System Error!","The program is unable to access a required file. Please contact your server administrator or technical support for assistance.
\n/g;}if($ab{$z[488]}){
if(!$ENV{$z[811]}){$lx.="\n\nSTACK TRACE\n";}else{$lx.="
";
}my$cz=0;while(my($ez,$ea,$fl)=(caller($cz++))[1,2,3]){if(!$ENV{$z[811]})
{$lx.=qq!($fl) called from ($ez) line ($ea)\n!;}else{$lx.=qq!
\n!;
}}}if(!$ENV{$z[811]}){foreach($qa,$lx){s/
/\n/gm;s/$ab{'debug_output'}"
if($ab{$z[303]});print"";}}if($ab{$z[838]}){rmdir($ab{$z[508]})
&&undef$ab{$z[838]};}if($ENV{$z[811]}){printf($z[839]."\n",time()-$^T);
print$z [840]."\n\n";}exit;}sub bu{my($gd,$il,$qe)=@_;if(defined
$ab{$z[134]}{$z[135]}{$gd.$qe}){$gd.=$qe;}&bv($gd,$il);}sub
am{my@qf;my$cz;foreach$cz(1..3){my$qg=$ac{"sort${cz}field"};
next unless$qg;$qg="#$qg#"if$ac{"sort${cz}numeric"};$qg="-$qg"
if$ac{"sort${cz}reverse"};push@qf,$qg;}$ae{$z[13]}{$z[170]}
=join($z[688],@qf);}
# ----------------------------------------------------------------------------
# Programming by interactivetools.com, inc.