Changeset 455

Show
Ignore:
Timestamp:
02/26/03 11:14:44 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBTelepathy/CHANGES

    r423 r455  
    11<?xml version='1.0'?> 
    2 <history title='RBMessaging History' xmlns:xhtml='http://www.w3.org/1999/xhtml' xmlns='http://namespaces.runeblade.com/product/history' > 
     2<history title='RBTelepathy History' xmlns:xhtml='http://www.w3.org/1999/xhtml' xmlns='http://namespaces.runeblade.com/product/history' > 
    33    <about> 
    44        TODO: Need some about text 
    5         $Id: CHANGES,v 1.1 2003/01/27 03:55:42 sholloway Exp $ 
     5        $Id: CHANGES,v 1.2 2003/02/26 18:14:26 sholloway Exp $ 
    66    </about> 
    77 
     
    1414    </copyright> 
    1515 
    16     <release title='RBMessaging' version='0.1.0' date='2003.02.01'> 
     16    <release title='RBTelepathy' version='0.1.0' date='2003.02.01'> 
    1717        TODO Label goes here 
    1818 
  • trunk/RBTelepathy/INSTALL

    r423 r455  
    11#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2 #~ RuneBlade RBMessaging 
     2#~ RuneBlade RBTelepathy 
    33#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    44 
  • trunk/RBTelepathy/RBTelepathy/Connection.py

    r443 r455  
    8989            for key in handler.RoutedPacketHandlers: 
    9090                self.RoutedPacketHandlers[key] = handler 
    91         except ErrorTypes.RBMessagingError, e:  
     91        except ErrorTypes.RBTelepathyError, e:  
    9292            raise 
    9393        except: 
     
    104104                try: del self.RoutedPacketHandlers[key] 
    105105                except KeyError: pass 
    106         except ErrorTypes.RBMessagingError, e:  
     106        except ErrorTypes.RBTelepathyError, e:  
    107107            raise 
    108108        except: 
  • trunk/RBTelepathy/RBTelepathy/ErrorTypes.py

    r412 r455  
    3030#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3131 
    32 class RBMessagingError(StandardError): 
     32class RBTelepathyError(StandardError): 
    3333    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3434    #~ Constants / Variables / Etc.  
     
    7575#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    7676 
    77 class StreamError(RBMessagingError): 
     77class StreamError(RBTelepathyError): 
    7878    pass 
    7979class StreamProtocolError(StreamError): 
     
    9595#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    9696 
    97 class ConnectionError(RBMessagingError): 
     97class ConnectionError(RBTelepathyError): 
    9898    pass 
    9999class AuthenticationError(ConnectionError): 
  • trunk/RBTelepathy/RBTelepathy/Handlers/__init__.py

    r453 r455  
    2121 
    2222""" 
    23 Packet Handlers are the brains of the RBMessaging system.  They handle the 
     23Packet Handlers are the brains of the RBTelepathy system.  They handle the 
    2424implementation details of a smaller list of packets of specific namespace and 
    2525types.  By reducing what packets are required to handle, they become much 
     
    2828packet handler itself that receives routed and stream messages and should 
    2929contain the knowledge to deal with them.  Their structure and implementation is 
    30 governed by the RBMessaging system.  Second is/are the actual packet element(s) 
     30governed by the RBTelepathy system.  Second is/are the actual packet element(s) 
    3131used by the Connection Protocol's packet builder to construct the appropriate 
    3232packets from the stream.  The class structure and protocol are governed by the 
     
    6262ElementFactoires, NamespaceSynonyms, and DefaultNamespace are all governed and 
    6363specified by the XMLClassBuilder system.  The two PacketHandler dictionaries 
    64 and the corresponding methods are interface to the rest of the RBMessaging 
     64and the corresponding methods are interface to the rest of the RBTelepathy 
    6565system. 
    6666 
     
    7878from xml.sax.saxutils import quoteattr as xmlquoteattr 
    7979 
    80 from RBMessaging import ErrorTypes 
    81 from RBMessaging.Packet import * 
    82 from RBMessaging.Packet.RBMBuilder import * 
    83 from RBMessaging.Packet import RBMElements as RBME 
    84 from RBMessaging.Packet import RBMStreamElements as RBMStream 
    85 from RBMessaging.Packet import URIAddress 
     80from RBTelepathy import ErrorTypes 
     81from RBTelepathy.Packet import * 
     82from RBTelepathy.Packet.RBMBuilder import * 
     83from RBTelepathy.Packet import RBMElements as RBME 
     84from RBTelepathy.Packet import RBMStreamElements as RBMStream 
     85from RBTelepathy.Packet import URIAddress 
    8686 
    8787#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/RBTelepathy/Packet/Builder.py

    r452 r455  
    2929from RBFoundation.XMLClassBuilder import * 
    3030from RBFoundation.XMLClassBuilder import ElementFactory as EF 
    31 from RBMessaging import ErrorTypes 
     31from RBTelepathy import ErrorTypes 
    3232 
    3333#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    6262        try: 
    6363            return self.Parse(*args, **kw) 
    64         except ErrorTypes.RBMessagingError, e: 
     64        except ErrorTypes.RBTelepathyError, e: 
    6565            raise # Pass these along... 
    6666        except ExpatError, e: 
  • trunk/RBTelepathy/RBTelepathy/Packet/StreamElements.py

    r452 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging import ErrorTypes 
     26from RBTelepathy import ErrorTypes 
    2727from RBMElements import PacketElementBase, Factory, XMLAdaptor 
    2828 
  • trunk/RBTelepathy/RBTelepathy/Packet/__init__.py

    r450 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 RBMessagingNamespace = 'http://namespaces.runeblade.com/RBMessaging
     26RBTelepathyNamespace = 'http://namespaces.runeblade.com/RBTelepathy
    2727RBNamespaceSynonyms = { 
    28     'RuneBladeMessaging': RBMessagingNamespace, 
    29     'RBMessaging': RBMessagingNamespace, 
    30     'RBM': RBMessagingNamespace, 
    31     None: RBMessagingNamespace, 
     28    'RuneBladeMessaging': RBTelepathyNamespace, 
     29    'RBTelepathy': RBTelepathyNamespace, 
     30    'RBM': RBTelepathyNamespace, 
     31    None: RBTelepathyNamespace, 
    3232    } 
    3333RBDefaultNamespace = RBNamespaceSynonyms[None] 
  • trunk/RBTelepathy/RBTelepathy/Routing/KeylistRouterBase.py

    r453 r455  
    2525 
    2626from RouterBase import * 
    27 from RBMessaging import ErrorTypes 
     27from RBTelepathy import ErrorTypes 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/RBTelepathy/Routing/RouterBase.py

    r453 r455  
    3232#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3333 
    34 from RBMessaging import ErrorTypes 
     34from RBTelepathy import ErrorTypes 
    3535 
    3636#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/RBTelepathy/Stream/Protocol.py

    r445 r455  
    3838#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3939 
    40 from RBMessaging import ErrorTypes 
     40from RBTelepathy import ErrorTypes 
    4141from xml.sax.saxutils import escape as xmlescape 
    4242from xml.sax.saxutils import quoteattr as xmlquoteattr  
     
    121121 
    122122    def StreamError(self, error, forceshutdown=False): 
    123         if isinstance(error, ErrorTypes.RBMessagingError): 
     123        if isinstance(error, ErrorTypes.RBTelepathyError): 
    124124            self.log.log(error.logtype, error.message, exc_info=error.logtraceback) 
    125125 
     
    144144                del self.data 
    145145 
    146         # Reraise any non-RBMessaging error 
    147         return isinstance(error, ErrorTypes.RBMessagingError) 
     146        # Reraise any non-RBTelepathy error 
     147        return isinstance(error, ErrorTypes.RBTelepathyError) 
    148148 
    149149    def OnStreamPacket(self, packet): 
     
    166166                # We expected a packet, so not getting one is an error 
    167167                raise ErrorTypes.StreamProtocolError, 'Incomplete XML header' 
    168         except ErrorTypes.RBMessagingError, rbError: 
     168        except ErrorTypes.RBTelepathyError, rbError: 
    169169            if self.StreamError(rbError) is False: 
    170170                raise 
     
    177177            try: 
    178178                self.data = self.currentpacket.OnStreamData(self.data, self._OnStreamPacket) or '' 
    179             except ErrorTypes.RBMessagingError, rbError: 
     179            except ErrorTypes.RBTelepathyError, rbError: 
    180180                if self.StreamError(rbError) is False: 
    181181                    raise 
     
    193193        try: 
    194194            self.OnStreamPacket(packet) 
    195         except ErrorTypes.RBMessagingError, rbError: 
     195        except ErrorTypes.RBTelepathyError, rbError: 
    196196            if self.StreamError(rbError) is False: 
    197197                raise 
  • trunk/RBTelepathy/RBTelepathy/Stream/SocketAdaptor.py

    r443 r455  
    2323The SocketStream and LockingSocketStream classes try to be as lightweight as 
    2424practical, yet still helpful.  They mainly provide an adaption between the 
    25 RBFoundation.SmartSelect module, sockets, and the RBMessaging architecture. 
     25RBFoundation.SmartSelect module, sockets, and the RBTelepathy architecture. 
    2626Their main responsiblity is to keep watch and interface with on the socket 
    2727state including send, receive, shutdown, and other errors.  Furthermore, since 
    28 RBMessaging is based on a push model, as data is read from the socket, that 
     28RBTelepathy is based on a push model, as data is read from the socket, that 
    2929data is pushed to OnRecvStreamData which is intended to be reassigned.  The 
    3030same idea is applied to the OnShutdown event. 
  • trunk/RBTelepathy/RBTelepathy/__init__.py

    r432 r455  
    138138__url__ = 'http://www.runeblade.com/' 
    139139__keywords__ = ['sockets', 'IM', 'peer-to-peer', 'P2P'] 
    140 __packages__ = ['RBMessaging',  
    141                 'RBMessaging.Packet',  
    142                 'RBMessaging.Routing',  
    143                 'RBMessaging.Stream'] 
     140__packages__ = ['RBTelepathy',  
     141                'RBTelepathy.Handlers',  
     142                'RBTelepathy.Routing',  
     143                'RBTelepathy.Packet',  
     144                'RBTelepathy.Stream'] 
    144145 
  • trunk/RBTelepathy/README

    r423 r455  
    11=================== 
    2 RBMessaging Readme 
     2RBTelepathy Readme 
    33=================== 
    44 
    5 TODO: Describe RBMessaging 
     5TODO: Describe RBTelepathy 
    66 
    77More information, including distributables, can be found at  
  • trunk/RBTelepathy/demo/simple/client/AuthenticationHandler.py

    r454 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Handlers import * 
     26from RBTelepathy.Handlers import * 
    2727 
    2828#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/demo/simple/client/ErrorHandler.py

    r453 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Handlers import * 
     26from RBTelepathy.Handlers import * 
    2727 
    2828#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/demo/simple/client/MessageHandler.py

    r453 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Handlers import * 
     26from RBTelepathy.Handlers import * 
    2727import copy 
    2828 
  • trunk/RBTelepathy/demo/simple/client/TestClient.py

    r453 r455  
    3232from xml.sax.saxutils import escape as xmlescape 
    3333 
    34 from RBMessaging import Model 
    35 from RBMessaging import SocketConnections 
    36 from RBMessaging.Packet.RBMBuilder import StreamPacketBuilder 
     34from RBTelepathy import Model 
     35from RBTelepathy import SocketConnections 
     36from RBTelepathy.Packet.RBMBuilder import StreamPacketBuilder 
    3737 
    3838import AuthenticationHandler 
     
    4040import ErrorHandler 
    4141 
    42 from RBMessaging.Packet.RBMElements import URIAddr 
    43 from RBMessaging.Packet.RBMStreamElements import LengthStream 
     42from RBTelepathy.Packet.RBMElements import URIAddr 
     43from RBTelepathy.Packet.RBMStreamElements import LengthStream 
    4444from MessageHandler import message 
    4545 
  • trunk/RBTelepathy/demo/simple/host/AuthenticationHandler.py

    r454 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Handlers import * 
     26from RBTelepathy.Handlers import * 
    2727 
    2828#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/demo/simple/host/ErrorHandler.py

    r453 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Handlers import * 
     26from RBTelepathy.Handlers import * 
    2727 
    2828#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/demo/simple/host/MessageHandler.py

    r453 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Handlers import * 
     26from RBTelepathy.Handlers import * 
    2727import copy 
    2828 
  • trunk/RBTelepathy/demo/simple/host/SimpleRouter.py

    r449 r455  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from RBMessaging.Routing.KeylistRouterBase import KeylistRouterBase  
    27 from RBMessaging import ErrorTypes 
     26from RBTelepathy.Routing.KeylistRouterBase import KeylistRouterBase  
     27from RBTelepathy import ErrorTypes 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBTelepathy/demo/simple/host/TestServer.py

    r453 r455  
    2828import logging.handlers 
    2929 
    30 from RBMessaging import Model 
    31 from RBMessaging import SocketConnections 
    32 from RBMessaging.Packet.RBMBuilder import StreamPacketBuilder 
     30from RBTelepathy import Model 
     31from RBTelepathy import SocketConnections 
     32from RBTelepathy.Packet.RBMBuilder import StreamPacketBuilder 
    3333 
    3434import SimpleRouter 
  • trunk/RBTelepathy/plans/overview.xml

    r422 r455  
    11<?xml version="1.0" ?> 
    2 <project id='RBMessaging Overview'> 
    3     <label>RBMessaging Overview</label> 
     2<project id='RBTelepathy Overview'> 
     3    <label>RBTelepathy Overview</label> 
    44    <subproject id='subproject crossproject' file='../../RuneBlade/plans/crossproject.xml' /> 
    5     <subproject id='subproject RBMessaging' file='project.xml' /> 
     5    <subproject id='subproject RBTelepathy' file='project.xml' /> 
    66</project> 
  • trunk/RBTelepathy/plans/project.xml

    r430 r455  
    11<?xml version="1.0" ?> 
    2 <project id='RBMessaging'> 
    3     <label>RBMessaging package</label> 
     2<project id='RBTelepathy'> 
     3    <label>RBTelepathy package</label> 
    44    <import-resources file="../../RuneBlade/plans/people.xml"/> 
    55 
    6     <task id='devel RBMessaging'> 
     6    <task id='devel RBTelepathy'> 
    77        <label>Development</label> 
    88        <use-resource type='devel' id='swh-devel'/> 
    99 
    10         <task id='devel RBMessaging.Routing'> 
     10        <task id='devel RBTelepathy.Routing'> 
    1111            <label>Routing subsystem</label> 
    12             <task id='devel RBMessaging.Routing framework'> 
     12            <task id='devel RBTelepathy.Routing framework'> 
    1313                <label>Routing template method</label> 
    1414                <duration>2</duration> 
     
    1818        </task> 
    1919 
    20         <task id='devel RBMessaging.Connection'> 
     20        <task id='devel RBTelepathy.Connection'> 
    2121            <label>Connection subsystem</label> 
    22             <task id='devel RBMessaging.Connection mediator'> 
     22            <task id='devel RBTelepathy.Connection mediator'> 
    2323                <label>Connection Mediator</label> 
    2424                <duration>3</duration> 
     
    2828        </task> 
    2929 
    30         <task id='devel RBMessaging.Packet'> 
     30        <task id='devel RBTelepathy.Packet'> 
    3131            <label>Packet subsystem</label> 
    32             <task id='devel RBMessaging.Packet XML handlers'> 
     32            <task id='devel RBTelepathy.Packet XML handlers'> 
    3333                <label>Raw text XML to object converstion</label> 
    3434                <duration>2</duration> 
     
    3737            </task> 
    3838 
    39             <task id='devel RBMessaging.Packet.Error'> 
     39            <task id='devel RBTelepathy.Packet.Error'> 
    4040                <label>Error Packet Handler</label> 
    4141                <duration>2</duration> 
     
    4444            </task> 
    4545 
    46             <task id='devel RBMessaging.Packet.Authentication'> 
     46            <task id='devel RBTelepathy.Packet.Authentication'> 
    4747                <label>Authentication Packet Handler</label> 
    4848                <duration>4</duration> 
     
    5151            </task> 
    5252 
    53             <task id='devel RBMessaging.Packet.Message'> 
     53            <task id='devel RBTelepathy.Packet.Message'> 
    5454                <label>Message Packet Handler</label> 
    5555                <duration>4</duration> 
     
    8686 
    8787    <!-- 
    88     <task id='test RBMessaging'> 
    89         <label>Tests for RBMessaging modules</label> 
     88    <task id='test RBTelepathy'> 
     89        <label>Tests for RBTelepathy modules</label> 
    9090        <duration>5</duration> 
    9191        <progress>0</progress> 
     
    9393    </task> 
    9494 
    95     <task id='doc RBMessaging'> 
    96         <label>Docs for RBMessaging modules</label> 
     95    <task id='doc RBTelepathy'> 
     96        <label>Docs for RBTelepathy modules</label> 
    9797        <duration>5</duration> 
    9898        <progress>0</progress> 
     
    100100    </task> 
    101101 
    102     <task id='demo RBMessaging'> 
    103         <label>Demos for RBMessaging modules</label> 
     102    <task id='demo RBTelepathy'> 
     103        <label>Demos for RBTelepathy modules</label> 
    104104        <duration>5</duration> 
    105105        <progress>0</progress> 
     
    108108    --> 
    109109 
    110     <task id='plan RBMessaging'> 
     110    <task id='plan RBTelepathy'> 
    111111        <label>Project Planning and Management</label> 
    112112        <use-resource type="plan"/> 
    113         <task id='plan RBMessaging gantt'> 
     113        <task id='plan RBTelepathy gantt'> 
    114114            <label>Gantt Charts</label> 
    115115            <duration>2</duration> 
     
    119119        </task> 
    120120 
    121         <task id='plan RBMessaging distutils'> 
    122             <label>Create distutils setup for RBMessaging</label> 
     121        <task id='plan RBTelepathy distutils'> 
     122            <label>Create distutils setup for RBTelepathy</label> 
    123123            <duration>1</duration> 
    124124            <progress>100</progress> 
     
    127127        </task> 
    128128 
    129         <task id='plan RBMessaging project maintence'> 
    130             <label>Project maintence for RBMessaging</label> 
     129        <task id='plan RBTelepathy project maintence'> 
     130            <label>Project maintence for RBTelepathy</label> 
    131131            <duration>2</duration> 
    132132            <progress>50</progress> 
  • trunk/RBTelepathy/plans/status.html

    r445 r455  
    11<html> 
    2 <head><title>RBMessaging Overview</title></head> 
    3 <body><h1 align='center'>Project RBMessaging Overview</h1> 
    4 <h3>begun on 15/01, possible end to 04/03</h3> 
    5 <h4>1 results (0.03 seconds)</h4> 
     2<head><title>RBTelepathy Overview</title></head> 
     3<body><h1 align='center'>Project RBTelepathy Overview</h1> 
     4<h3>begun on 15/01, possible end to 18/03</h3> 
     5<h4>1 results (0.04 seconds)</h4> 
    66<table border='0'> 
    7 <th colspan='2' ><font size="3" color="orangered">Project RBMessaging Overview</font></th> 
    8 <th>Dur</th><th>%</th><th>Pri</th><th>Status</th><th >15/01</th><th >16/01</th><th >17/01</th><th >18/01</th><th >19/01</th><th >20/01</th><th >21/01</th><th >22/01</th><th >23/01</th><th >24/01</th><th >25/01</th><th >26/01</th><th >27/01</th><th >28/01</th><th >29/01</th><th >30/01</th><th >31/01</th><th >01/02</th><th >02/02</th><th >03/02</th><th >04/02</th><th >05/02</th><th >06/02</th><th >07/02</th><th >08/02</th><th >09/02</th><th >10/02</th><th >11/02</th><th ><font size="1">12/02</font></th><th >13/02</th><th >14/02</th><th >15/02</th><th >16/02</th><th >17/02</th><th >18/02</th><th >19/02</th><th >20/02</th><th >21/02</th><th >22/02</th><th >23/02</th><th >24/02</th><th >25/02</th><th >26/02</th><th >27/02</th><th >28/02</th><th >01/03</th><th >02/03</th><th >03/03</th><th colspan='2' ><font size="3" color="orangered">Project RBMessaging Overview</font></th> 
    9 </tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>RBMessaging&nbsp;Overview</i></td><td align="center" bgcolor="#99FF99"><i>58</i></td><td align="center" bgcolor="#99FF99"><i>42</i></td><td align="center" bgcolor="#99FF99"><i>5</i></td><td bgcolor="#99FF99"><i>ready</i></td><td colspan='48' >&nbsp;</td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>RBMessaging&nbsp;Overview</i></td></tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;RuneBlade&nbsp;Cross&nbsp;Project&nbsp;Tasks</i></td><td align="center" bgcolor="#99FF99"><i>30</i></td><td align="center" bgcolor="#99FF99"><i>13</i></td><td align="center" bgcolor="#99FF99"><i>5</i></td><td bgcolor="#99FF99"><i>ready</i></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='4' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='38' >&nbsp;</td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;RuneBlade&nbsp;Cross&nbsp;Project&nbsp;Tasks</i></td></tr><tr><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Split&nbsp;out&nbsp;Foundation&nbsp;project&nbsp;into&nbsp;subproject</td><td align="center" bgcolor="#BBBBBB">4</td><td align="center" bgcolor="#BBBBBB">100</td><td align="center" bgcolor="#BBBBBB">5</td><td bgcolor="#BBBBBB">done</td><td >&nbsp;</td><td >&nbsp;</td><td colspan='4' bgcolor="#666666">&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Split&nbsp;out&nbsp;Foundation&nbsp;project&nbsp;into&nbsp;subproject</td></tr><tr><tr><tr valign='top'><td bgcolor="#FF0000">&nbsp;</td><td bgcolor="#FFBB33">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Migrate&nbsp;TechGame&nbsp;to&nbsp;a&nbsp;faster&nbsp;computer</td><td align="center" bgcolor="#FFBB33">5</td><td align="center" bgcolor="#FFBB33">0</td><td align="center" bgcolor="#FFBB33">5</td><td bgcolor="#FFBB33">run</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td colspan='23' bgcolor="#FF0000">&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><tr><tr valign='top'><td bgcolor="#FF0000">&nbsp;</td><td bgcolor="#FFBB33">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Migrate&nbsp;TechGame&nbsp;to&nbsp;a&nbsp;faster&nbsp;computer</td></tr><tr><tr><tr valign='top'><td bgcolor="#66FF66">&nbsp;</td><td bgcolor="#99FF99">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RuneBlade&nbsp;meeting&nbsp;2003/01/31</td><td align="center" bgcolor="#99FF99">1</td><td align="center" bgcolor="#99FF99">0</td><td align="center" bgcolor="#99FF99">5</td><td bgcolor="#99FF99">ready</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td colspan='1' bgcolor="#66FF66">&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><tr><tr valign='top'><td bgcolor="#66FF66">&nbsp;</td><td bgcolor="#99FF99">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RuneBlade&nbsp;meeting&nbsp;2003/01/31</td></tr><tr><tr><tr valign='top'><td bgcolor="#66FF66">&nbsp;</td><td bgcolor="#99FF99">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RuneBlade&nbsp;website</td><td align="center" bgcolor="#99FF99">20</td><td align="center" bgcolor="#99FF99">0</td><td align="center" bgcolor="#99FF99">5</td><td bgcolor="#99FF99">ready</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td colspan='20' bgcolor="#66FF66">&nbsp;</td><tr><tr valign='top'><td bgcolor="#66FF66">&nbsp;</td><td bgcolor="#99FF99">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RuneBlade&nbsp;website</td></tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;RBMessaging&nbsp;package</i></td><td align="center" bgcolor="#99FF99"><i>28</i></td><td align="center" bgcolor="#99FF99"><i>74</i></td><td align="center" bgcolor="#99FF99"><i>5</i></td><td bgcolor="#99FF99"><i>ready</i></td><td colspan='13' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='3' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;RBMessaging&nbsp;package</i></td></tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Development</i></td><td align="center" bgcolor="#99FF99"><i>23</i></td><td align="center" bgcolor="#99FF99"><i>73</i></td><td align="center" bgcolor="#99FF99"><i>5</i></td><td bgcolor="#99FF99"><i>ready</i></td><td colspan='10' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='3' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Development</i></td></tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#BBBBBB"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Routing&nbsp;subsystem</i></td><td align="center" bgcolor="#BBBBBB"><i>2</i></td><td align="center" bgcolor="#BBBBBB"><i>100</i></td><td align="center" bgcolor="#BBBBBB"><i>5</i></td><td bgcolor="#BBBBBB"><i>done</i></td><td colspan='2' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#BBBBBB"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Routing&nbsp;subsystem</i></td></tr><tr><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Routing&nbsp;template&nbsp;method</td><td align="center" bgcolor="#BBBBBB">2</td><td align="center" bgcolor="#BBBBBB">100</td><td align="center" bgcolor="#BBBBBB">5</td><td bgcolor="#BBBBBB">done</td><td colspan='2' bgcolor="#666666">&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Routing&nbsp;template&nbsp;method</td></tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#BBBBBB"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;subsystem</i></td><td align="center" bgcolor="#BBBBBB"><i>3</i></td><td align="center" bgcolor="#BBBBBB"><i>100</i></td><td align="center" bgcolor="#BBBBBB"><i>5</i></td><td bgcolor="#BBBBBB"><i>done</i></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='3' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#BBBBBB"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;subsystem</i></td></tr><tr><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;Mediator</td><td align="center" bgcolor="#BBBBBB">3</td><td align="center" bgcolor="#BBBBBB">100</td><td align="center" bgcolor="#BBBBBB">5</td><td bgcolor="#BBBBBB">done</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td colspan='3' bgcolor="#666666">&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;Mediator</td></tr><tr><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Packet&nbsp;subsystem</i></td><td align="center" bgcolor="#99FF99"><i>12</i></td><td align="center" bgcolor="#99FF99"><i>50</i></td><td align="center" bgcolor="#99FF99"><i>5</i></td><td bgcolor="#99FF99"><i>ready</i></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='7' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td colspan='3' ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><td ><hr size="4"></td><tr><tr valign='top'><td >&nbsp;</td><td bgcolor="#99FF99"><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Packet&nbsp;subsystem</i></td></tr><tr><tr><tr valign='top'><td bgcolor="#666666">&nbsp;</td><td bgcolor="#BBBBBB">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Raw&nbsp;text&nbsp;XML&nbsp;to&nbsp;object&nbsp;converstion</td><td align="center" bgcolor="#BBBBBB">2</td><td align="center" bgcolor="#BBBBBB">100</td><td align="center" bgcolor="#BBBBBB">5</td><td bgcolor="#BBBBBB">done</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td colspan='2' bgcolor="#666666">&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td><td >&