LoGD Standardrelease steht hier zum Download zur Verfügung!

Zeige Source: /kerker.php

Hier klicken für den Source, ODER
Weitere Dateien, von denen du den Quelltext sehen kannst:
(Das Lesen des Source, um sich spielerische Vorteile zu verschaffen, ist nicht erlaubt. Solltest du Schwachstellen oder Fehler entdecken, bist du als Spieler verpflichtet, diese zu melden.)

Source von: /kerker.php

<?php

/*
  --- Der Kerker ---

  Version 1.0

  Script by Lazalantin

  28.12.2005

  Email: dark-pilzkopf@web.de

  http://www.lemuria-legend.de/
  LoGD 0.9.7+jt ext (GER) Mystical Lemuria v1.0


*/


/*
   -- Einbauanleitung --

   SQL

   ALTER TABLE `accounts` ADD `prison` enum("0","1") NOT NULL default '0';
   ALTER TABLE `accounts` ADD `prisondays` tinyint(4) NOT NULL default '0';

   ALTER TABLE `accounts` ADD `einzelhaft` enum("0","1") NOT NULL default '0';
   ALTER TABLE `accounts` ADD `einzeldays` tinyint(4) NOT NULL default '0';



   login.php


   suche:

           @file(getsetting("logdnetserver","http://lotgd.net/")."logdnet.php?addy=".URLEncode(getsetting("serverurl","http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['REQUEST_URI'])))."&desc=".URLEncode(getsetting("serverdesc","Another LoGD Server"))."&version=".URLEncode($logd_version)."");
   }

   füge danach ein:

   if($session[user][prison]==1){
        redirect("kerker.php");
   }
   if($session[user][einzelhaft]==1){
        redirect("kerker.php");
   }

   save&closed



   village.php


   suche:

   if ($session['user']['alive']){ }else{
        redirect("shades.php");


   füge danach ein:

   if($session[user][prison]==1){
        redirect("kerker.php");
   }
   if($session[user][einzelhaft]==1){
        redirect("kerker.php");
   }

   save&closed



   newday.php


   einfach irgendwo einfügen:

if ($session[user][prison]==1 && $session[user][prisondays]>0){
        $session[user][prisondays]--;
}

if ($session[user][einzelhaft]==1 && $session[user][einzeldays]>0){
        $session[user][einzeldays]--;
}


Öffne die user.php und füge an geeigneter Stelle ein:

        "prison"=>"Sitz sie/er im Gefängniss?,enum,0,Nein,1,Ja",
        "prisondays"=>"Tage im Kerker `4(max. 255)`0,int",
        "einzelhaft"=>"Sitz sie/er in Einzelhaft?,enum,0,Nein,1,Ja",
        "einzeldays"=>"Tage Einzelhaft `4(max. 255)`0,int",

speichern und alles hochladen!


   und die kerker.php einfach noch irgendwo in der village.php verlinken

fertich :)

*/

require_once "common.php";

if (
$session['user']['einzelhaft']==&& $session[user][einzeldays] < 1){
    
addcommentary();
}


page_header("Der Kerker von Duskryn");


 
//abfrage für die mit befugnis wer eingekerkert wird
if ($_GET[op]=="search"){
        
$sql "SELECT acctid FROM accounts WHERE ";
        
$where="
        login LIKE '%
{$_POST['q']}%' OR
        acctid LIKE '%
{$_POST['q']}%' OR
        name LIKE '%
{$_POST['q']}%'";
        
$result db_query($sql.$where);
        if (
db_num_rows($result)<=0){
                
output("`\$Keine Ergebnisse gefunden`0");
                
$_GET[op]="";
                
$where="";
        }elseif (
db_num_rows($result)==1){
                
$_GET[op]="";
                
$_GET['page']=0;
        }else{
                
$_GET[op]="";
                
$_GET['page']=0;
        }

        if (isset(
$_GET['page'])){
                
$order "acctid";
                if (
$_GET[sort]!=""$order "$_GET[sort]";
                
$offset=(int)$_GET['page']*100;
                
$sql "SELECT acctid,login,name,level FROM accounts ".($where>""?"WHERE $where ":"")."ORDER BY \"$order\" LIMIT $offset,100";
                
$result db_query($sql) or die(db_error(LINK));
                
output("<table>",true);
                
output("<tr>
                <td><a href='kerker.php?sort=login'>Login</a></td>
                <td><a href='kerker.php?sort=name'>Name</a></td>
                <td><a href='kerker.php?sort=level'>Lev</a></td>

                </tr>`n`n"
,true);


                 
output("</td>",true);

                
addnav("","kerker.php?sort=login");
                
addnav("","kerker.php?sort=name");
                
addnav("","kerker.php?sort=level");
                
$rn=0;
                for (
$i=0;$i<db_num_rows($result);$i++){
                        
$row=db_fetch_assoc($result);

                        
output("<tr class='".($rn%2?"trlight":"trdark")."'>",true);

                        
output("<td>",true);
                        
output($row[login]);
                        
output("</td><td>",true);
                        
output($row[name]);
                        
output("</td><td>",true);
                        
output($row[level]);
                        
output("</td>",true);
                        
output("<td>",true);
                        
output("<a href='kerker.php?op=einweisen&player=".rawurlencode($row[acctid])."' style='color:#FAAC58' >Einlochen</a>",true);
                        
output("</td>",true);
                        
output("<td>",true);
                        
output("<a href='kerker.php?op=rausholen&player=".rawurlencode($row[acctid])."' style='color:#F5D0A9' >Begnadigen</a>",true);
                        
output("</td>",true);
                        
output("<td>",true);
                        
output("<a href='kerker.php?op=einzel&player=".rawurlencode($row[acctid])." ' style='color:#FF0000' >Einzelhaft</a>",true);
                        
output("</td>",true);
                        
output("<td>",true);
                        
output("<a href='kerker.php?op=einzellos&player=".rawurlencode($row[acctid])."' style='color:#F5A9A9' >Aus Einzelhaft entlassen</a>",true);
                        
output("</td>",true);
                        
addnav("","kerker.php?op=rausholen&player=".rawurlencode($row[acctid])."");
                        
addnav("","kerker.php?op=einweisen&player=".rawurlencode($row[acctid])."");
                        
addnav("","kerker.php?op=einzel&player=".rawurlencode($row[acctid])."");
                        
addnav("","kerker.php?op=einzellos&player=".rawurlencode($row[acctid])."");
                        
output("</tr>",true);
                }
                
output("</table>",true);
        }
        
addnav("Wege");
        
addnav("Zurück zum Kerker","kerker.php");
        
addnav("Zurück zur Wache","wache.php");
        
addnav("Zurück zur Stadt","village.php");
}



      
//abfrage zum rausholen ausm knast
if($_GET[op]=="rausholen"){
        
$player=$_GET[player];
        if(
$player != ""){
                
$sql="SELECT acctid, name, prison,prisondays,login, level FROM accounts WHERE acctid =".$player;
                
$result db_query($sql) or die(db_error(LINK));
                
$row db_fetch_assoc($result);

                
output("`n`n`ÃDu hast `&".$row['name']."`àaus dem Gefängnis geholt. Hoffen wir, dass es die richtige Entscheidung war!  ",true);
                
addnav("Zurück","kerker.php");

                
$sql="UPDATE accounts SET prison='0', prisondays=0, einzelhaft='0', einzeldays=0  WHERE acctid = ".$row['acctid'];
                
db_query($sql) or die(db_error(LINK));
                
$name=$session[user][name];
                 
systemmail($_GET[player],"`GBefreit! Von`0",$session[user][name]." hat dich aus dem Gefängnis entlassen und begnadigt!`nDu bist endlich wieder frei!",$session[user]['acctid']);
        }
}
                       
//abfrage zum anprangern
 
if($_GET[op]=="einweisen"){
 
$player=$_GET[player];
 if(
$player != "")
 {
         
$sql="SELECT acctid, name, prison,prisondays,login, level FROM accounts WHERE acctid =".$player;
         
$result db_query($sql) or die(db_error(LINK));
         
$row db_fetch_assoc($result);

                            
$sql="UPDATE accounts SET prisondays=prisondays+1, prison='1'  WHERE acctid = ".$row['acctid'];
                            
db_query($sql) or die(db_error(LINK));
                            
$name=$session[user][name];
        
$days=$row['prisondays']+1;

             
output("`n`n`ÃDu hast `&".$row['name']."`àin eine Zelle geworfen. Wollen wir hoffen, dass es gerechtfertigt war!  ",true);
              
systemmail($_GET[player],"`GEingesperrt! Von`0",$session[user][name]." hat dich einkerkern lassen!`n",$session[user]['acctid']);
               
addnav("Zurück","kerker.php");



                         }     }


   if(
$_GET[op]=="einzellos"){
    
$player=$_GET[player];
    
$player=$_GET[player];
    if(
$player != "")
    {
            
$sql="SELECT acctid, name, prison,prisondays,login, level FROM accounts WHERE acctid =".$player;
            
$result db_query($sql) or die(db_error(LINK));
            
$row db_fetch_assoc($result);

             
output("`n`n`ÃDu hast `&".$row['name']."`àaus der Einzelhaft geholt, ich hoffe es war richtig  ",true);
             
addnav("Zurück","kerker.php");

                            
$sql="UPDATE accounts SET einzelhaft='0', einzeldays=0  WHERE acctid = ".$row['acctid'];
                            
db_query($sql) or die(db_error(LINK));
                            
$name=$session[user][name];
                             
systemmail($_GET[player],"`&Befreit! Von`0",$session[user][name]." hat dich aus der Einzelhaft entlassen. `nDu bist endlich wieder bei den anderen Mitgefangenen!",$session[user]['acctid']);
                         }     }

    if(
$_GET[op]=="einzel"){
    
$player=$_GET[player];
    if(
$player != "")
    {
            
$sql="SELECT acctid, name, einzelhaft,einzeldays,login, level FROM accounts WHERE acctid =".$player;
            
$result db_query($sql) or die(db_error(LINK));
            
$row db_fetch_assoc($result);

                            
$sql="UPDATE accounts SET einzeldays=einzeldays+1,einzelhaft='1'  WHERE acctid = ".$row['acctid'];
                            
db_query($sql) or die(db_error(LINK));
                            
$name=$session[user][name];
            
$days=$row['einzeldays']+1;


             
output("`n`n`Gdu hast ".$row['name']."`G in Einzelhaft stecken lassen! Das ist eine sehr harte Strafe!  ",true);
              
systemmail($_GET[player],"`ÃEinzelhaft! `0",$session[user][name]." hat dich in Einzelhaft gesteckt.",$session[user]['acctid']);
               
addnav("Zurück","kerker.php");



                         }     }

if (
$_GET[op]==""){
    if (
$session['user']['prison']==&& $session['user']['einzelhaft']==0) {
        
// addcommentary();
        
$session['user']['standort']="`4Im Kerker`0";
        if (
$session[user][prisondays] >= 1){
                            
output("`c<table width='700'><tr>
<td> <img src='images/kerker.jpg' width='700' hight='150'>
</td></tr>
</table>`c`n`0"
,true);
            
output("`1`iBedauernd stellst du fest, dass du noch immer in einer der Kerkerzellen fest sitzt.`n
            Dein Komfort hier beschränkt sich auf ein Minimum. In deiner Zelle hast du eine harte Pritsche und eine löchrige, alte Decke. Das wenige Stroh, dass hier auf dem Boden liegt ist schon 
            schimmlig und verströmt einen unangenehmen Geruch. Du hörst das stetige Tropfen von Wasser und es treibt dich fast in den Wahnsinn. Du trittst näher an die schmutzigen Gitterstäbe heran
            und spähst in die Zellen deiner Mithäftlinge, denen es nicht besser ergeht. An der Treppe die hinauf in die Freiheit führt, sitzt der Gefängniswärter mit einer Wache und vertreibt sich
            mit einem Würfelspiel die Zeit.`i`n`n"
);
            
viewcommentary("kerker","Unterhalte dich",15,"sagt",1,1);
            
addnav("Bitte lesen");
            
addnav("Regeln","");
            
addnav("Kerker");
           
/* addnav("Mit dem Troll reden","kerker.php?op=reden");
            if ($session[user][gems]>0){
                addnav("Eine Suppe essen (1 Edelstein)","kerker.php?op=suppe");
            }*/
            
addnav("Schlafen legen","login.php?op=logout",true);
            if(
$session['user']['superuser']>=2addnav("Admingrotte","superuser.php");
        }else{
                            
output("`c<table width='700'><tr>
<td> <img src='images/kerker.jpg' width='700' hight='150'>
</td></tr>
</table>`c`n`0"
,true);
            
output("`1`iSchwere Schritte und das Klappern von Metall ist auf dem Gang zu hören. Du gehst zu den Gitterstäben um heraus zu finden, was auf dem Gang los ist. Der Gefängniswärter und
            zwei Stadtwachen kommen auf deine Zelle zu und postieren sich vor den Gitterstäben. Der Gefängniswärter schließt die Tür zu deiner Zelle auf und öffnet diese mit einem lauten Quitschen.`n
            `E\"Ihr habt Eure Strafe abgesessen und dürft nun gehen.\" `1erklärt dir eine der Wachen und erleichtert atmest du aus. Endlich bist du wieder frei!`n
            Von den zwei Wachen wirst du nach oben eskortiert, so dass du nicht auf dumme Ideen kommst. Dort übergeben sie dir dein Hab und Gut, dass sie dir vor deiner Kerkerstrafe abgenommen haben.`i"
);
            
addnav("In die Freiheit","village.php");
            
$session[user][prison]=0;
            
$session[user][prisondays]=0;
            
addnews("".$spieler['name']." `Ewurde heute aus dem Gefängnis von Duskryn entlassen!");
        }
    }

    if (
$session['user']['einzelhaft']==1) {
        if (
$session[user][einzeldays] >= 1){
            
$session['user']['standort']="`4In Einzelhaft`0";
                    
output("`c<table width='700'><tr>
<td> <img src='images/kerker.jpg' width='700' hight='150'>
</td></tr>
</table>`c`n`0"
,true);
            
output("`1`iDu wurdest in die schwarzen Zellen geworfen und nun musst du die Zeit in absoluter Dunkelheit absitzen. Die kalten Wände sind teilweise von Schimmel überzogen und an einigen 
            Stellen läuft ein dünnes Rinnsal Wasser hinab. Du hast hier weder ein Pritsche noch eine Decke, die dich hier warmhalten könnte. Hier kannst du nichts weiter tun, als darauf zu hoffen und zu 
            beten, dass du schnell wieder heraus kommst. `i`n"
);
        
//    viewcommentary("kerker","Keiner kann dich hören!",25,"schimpft",1,1);
            
addnav("Bitte lesen");
            
addnav("`^Regeln","");
            
addnav("Schwarze Zelle");
            
addnav("Schlafen legen","login.php?op=logout",true);
        }else{
                            
output("`c<table width='700'><tr>
<td> <img src='images/kerker.jpg' width='700' hight='150'>
</td></tr>
</table>`c`n`0"
,true);
            
output("`1`iDu glaubst schwere Schritte und das Klappern von Metall zu hören, aber es könnte auch gut sein, dass du dir das nur einbildest. Du hast keine Ahnung wieviel Zeit vergangen ist,
            denn in dieser Dunkelheit hast du keine Möglichkeit dich an irgendetwas zu orientieren. Ein Klicken ertönt, dann wird die Tür schabend über den Steinboden gezogen und geöffnet. Das Licht einer
            Fackel fällt in deine Zelle und die Helligkeit blendet dich und du musst die Augen schließen. `E\"Ihr habt Eure Strafe abgesessen und dürft nun gehen.\" `1hörst du jemanden sagen und öffnest
            die Augen einen spaltbreit. Langsam gewöhnst du dich an das Licht und kannst den Gefängniswärter und zwei Wachen erkennen. Du zwingst deine schmerzenden Knochen dazu, aufzustehen und schlurfst
            auf die Tür zu.`n
            Die Wachen eskortieren dich nach oben und überreichen dir dein Hab und Gut, dass sie dir vor deiner Kerkerstrafe abgenommen haben. Du bist tatsächlich wieder frei. Du solltest zusehen, dass
            du nicht so schnell wieder in diesem Loch landest. `i"
);
            
addnav("In die Freiheit","village.php");
            
$session[user][einzelhaft]=0;
            
$session[user][einzeldays]=0;
            
addnews("".$spieler['name']." `Ewurde heute aus dem Gefängnis von Duskryn entlassen!");
            }
    }

       
//anzeige wer eingebunkert ist
       
else if ($session['user']['prison'] == 0){
       
// addcommentary();
       
$session['user']['standort']="Kerker";
        
$sql "SELECT count(acctid) AS c FROM accounts WHERE prison='1' AND einzelhaft='0'";
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$prison1 $row['c'];

        
$sql "SELECT count(acctid) AS b FROM accounts WHERE einzelhaft='1'";
        
$result db_query($sql);
        
$row db_fetch_assoc($result);
        
$prison2 $row['b'];

        
output("`c<table width='700'><tr>
<td> <img src='images/kerker.jpg' width='700' hight='150'>
</td></tr>
</table>`c`n`0"
,true);
        
output("`c<table width='700'><tr><td align='justify'>`i`1Vorbei an zwei schwer bewaffneten Stadtwachen gelangt man über eine schmale Treppe hinunter in die Kerker. Am Fuße der Treppe ist auf der linken Seite ein kleiner, offener Raum, in dem hinter einem kleinen Tisch der Gefängniswärter gemeinsam mit einer weiteren Wache sitzt. Misstrauisch mustern dich beide, doch nur die Wache erhebt sich von ihrem Stuhl. Seine Hand ruht auf dem Griff seines Schwertes, während er dir erklärt: `E\"Wenn Ihr einen der Gefangenen sprechen wollt, müsst Ihr erst Eure Waffen ablegen, falls Ihr welche bei Euch führt.\"`1`n`n
        Auf einem dreckigen Pergament sind die Insassen verzeichnet, die momentan hier einsitzen.`i`n`n</td></tr></table>`c"
,true);
   
//     output("`n`TDu siehst an einer kleinen Tafel, die am Eingang hängt, dass zur Zeit $prison1 `TKrieger/innen in Haft sitzen und $prison2 `TKrieger/innen in Einzelhaft.");
        
output("`n`n");

        
output("Häftlinge:`n");
        
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true);
        
output("<tr class='trhead'><td><b>`&Gefangener</b></td><td><b>`&Level</b></td><td><b>`&Tage in Haft</b></td>",true);

        
$sql "SELECT name, level, prisondays FROM accounts WHERE prison='1' AND einzelhaft='0'";
        
$result db_query($sql);
        for (
$i=0;$i<db_num_rows($result);$i++){
                
$row db_fetch_assoc($result);
                
$inprison $row[name];
                
$prisondays $row[prisondays];
                
$level $row[level];
                 
output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
                
output("`&$inprison`n");
                
output("</td><td>",true);
                
output("`&$level`n");
                
output("</td><td>",true);
                
output("`&$prisondays`n");
                
output("</td>",true);
                }
        
output("</table>",true);


        
output("`n`n");
        
output("`i`1Ganz unten sind die Namen der Häftlinge aufgelistet, die in die schwarzen Zellen geworfen wurden. Die Wache erklärt dir knapp, dass diese nicht besucht werden können.`i`n`n
        Insassen der schwarzen Zellen:`n"
);
        
output("<table border=0 cellpadding=2 cellspacing=1 bgcolor='#999999'>",true);
        
output("<tr class='trhead'><td><b>`&Gefangener</b></td><td><b>`&Level</b></td><td><b>`&Tage in den schwarzen Zellen</b></td>",true);

        
$sql "SELECT * FROM accounts WHERE einzelhaft='1'";
        
$result db_query($sql);
        for (
$i=0;$i<db_num_rows($result);$i++){
                
$row db_fetch_assoc($result);
                
$prison $row[name];
                
$days $row[einzeldays];
                
$level $row[level];
                 
output("<tr class='".($i%2?"trdark":"trlight")."'><td>",true);
                
output("`&$prison`n");
                
output("</td><td>",true);
                
output("`&$level`n");
                
output("</td><td>",true);
                
output("`&$days`n");
                
output("</td>",true);
                }
        
output("</table>",true);

        
output("`n`n");
        
viewcommentary("kerker","Unterhalte dich",15,"sagt",1,1);

           
// menu
     //   addnav("Der Kerker");
    //    addnav("Sich mit dem Troll unterhalten","kerker.php?op=laber");
        
if ($session[user][superuser]>=1){
        
addnav("Optionen");
            
addnav("Einkerkern oder begnadigen","kerker.php?op=binden");
        }
        
addnav("Wege");
        
addnav("Zurück nach oben","wache.php");
        
addnav("Zurück zur Stadt","village.php");

}
}
        if (
$_GET[op]=="binden"){

            
output("`&`bHier kannst du Spieler/innen einkerkern bzw. wieder freilassen.`b`n`n
            Bitte beachten:`n
            Dauer der Haftstrafen in einem erträglichen Rahmen vergeben.`n
            `bEinzelhaft`b nur im Falle von besonders schweren Verstößen verhängen, die sich gegen das Gameplay richten.`n
            RPler die aufgrund Handlungen in ihrem RP bestraft werden, sollen nur in Absprache einkerkern.`n`n`n"
);
            
output("<form action='kerker.php?op=search' method='POST'>Spieler suchen:`n <input name='q' id='q'>`n<input type='submit' class='button'></form>",true);
            
output("<script language='JavaScript'>document.getElementById('q').focus();</script>`c",true);
            
addnav("","kerker.php?op=search");
            
addnav("Zurück","kerker.php");
}

        if (
$_GET[op]=="reden"){

            
output("`TDa dir im Gefängnis langweilig ist und du nicht weißt, was du tun sollst, versuchst du ein wenig mit dem Kerkertroll zu reden. Du rufst ihn zu dir und versuchst einfach über irgendwas zu quatschen, doch er verpasst dir einen Schlag auf den Kopf und du verlierst einen Lebenspunkt!");
            if (
$session[user][hitpoints]>1){
                
$session[user][hitpoints]--;
            }else{
                
$session[user][hitpoints]=1;
            }
            
addnav("Weiter gammeln","kerker.php");
}

        if (
$_GET[op]=="suppe"){

            
output("`TDa du hungrig bist, bestellst du dir beim Kerkertroll eine leckere Suppe. Er bringt sie dir und du gibst ihm dafür einen Edelstein. Aber Pustekuchen! Sie schmeckt mehr nach Wasser und Sand als nach irgendetwas anderem!");
            
$session[user][gems]--;
            if (
$session[user][hitpoints]<$session[user][maxhitpoints]){
               
$session[user][hitpoints]=$session[user][maxhitpoints];
            }
            
addnav("Weiter gammeln","kerker.php");
}

if (
$_GET[op]=="laber"){
    
output("`TDu bist es satt mit den Gefängnisinsassen zu reden, deshalb versuchst du dich etwas mit dem Kerkertroll zu unterhalten.");
    
output("`TAls du auf ihn zugehst, schaut er auf und guckt dich ersteinmal von oben bis unten an.");
    switch (
e_rand(1,10)){
        case 
1:
        case 
2:
        case 
3:
        case 
4:
        case 
5:
        case 
6:
        case 
7:
            
output("`TDann lehnt er sich zurück und sagt, dass du ihn nicht bei der Arbeit stören sollst.");
            
addnav("Zurück","kerker.php");
        break;
        
        case 
8:
        case 
9:
        case 
10:
            
output("`TEr sieht dich mit großen Augen an und hält dich für einen Flüchtling. Dann schnappt er dich, bevor du etwas machen kannst und sperrt dich in eine Zelle. Aber nur für einen Tag!");
            
$session[user][prison]=1;
            
$session[user][prisondays]=1;
            
addnews("".$spieler['name']."  `4hat sich selbst dem Kerkertroll ausgeliefert und sitzt nun bis zum Ende des Tages in Haft!");
            
addnav("Absitzen","kerker.php");
        break;
        
        case 
11// nicht mehr in der Auswahl!
            
output("`TEr sieht dich mit großen Augen an und sieht in dir den Schwerverbrecher, der weltweit gesucht wird! Sofort schnappt er dich, ehe du etwas dagegen tun kannst und steckt dich für drei Tage in Einzelhaft!");
            
$session[user][einzelhaft]=1;
            
$session[user][einzeldays]=3;
            
addnews("".$spieler['name']." `\$ wurde von dem Kerkertroll als Schwerverbrecher enttarnt und sitzt nun drei Tage in Einzelhaft!");
            
addnav("Strafe absitzen","kerker.php");
        break;    
    }
}
checkday();
page_footer();

?>