#!/usr/bin/env python
# -*- coding: UTF-8 -*-



##################################################
## DEPENDENCIES
import sys
import os
import os.path
from os.path import getmtime, exists
import time
import types
import __builtin__
from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
from Cheetah.Template import Template
from Cheetah.DummyTransaction import DummyTransaction
from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
from Cheetah.CacheRegion import CacheRegion
import Cheetah.Filters as Filters
import Cheetah.ErrorCatchers as ErrorCatchers
from nav.web import shouldShow, cycler
import nav.buildconf

##################################################
## MODULE CONSTANTS
try:
    True, False
except NameError:
    True, False = (1==1), (1==0)
VFFSL=valueFromFrameOrSearchList
VFSL=valueFromSearchList
VFN=valueForName
currentTime=time.time
__CHEETAH_version__ = '2.0.1'
__CHEETAH_versionTuple__ = (2, 0, 1, 'final', 0)
__CHEETAH_genTime__ = 1225031611.024591
__CHEETAH_genTimestamp__ = 'Sun Oct 26 14:33:31 2008'
__CHEETAH_src__ = 'MainTemplate.tmpl'
__CHEETAH_srcLastModified__ = 'Fri Jan 19 14:16:23 2007'
__CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine'

if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
    raise AssertionError(
      'This template was compiled with Cheetah version'
      ' %s. Templates compiled before version %s must be recompiled.'%(
         __CHEETAH_version__, RequiredCheetahVersion))

##################################################
## CLASSES

class MainTemplate(Template):

    ##################################################
    ## CHEETAH GENERATED METHODS


    def __init__(self, *args, **KWs):

        Template.__init__(self, *args, **KWs)
        if not self._CHEETAH__instanceInitialized:
            cheetahKWArgs = {}
            allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
            for k,v in KWs.items():
                if k in allowedKWs: cheetahKWArgs[k] = v
            self._initCheetahInstance(**cheetahKWArgs)
        

    def additionalMeta(self, **KWS):



        ## CHEETAH: generated from #def additionalMeta at line 82, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def standardCSS(self, **KWS):



        ## CHEETAH: generated from #def standardCSS at line 93, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''    <link rel="stylesheet" type="text/css" href="/style/default.css" />
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def default_table_CSS(self, **KWS):



        ## CHEETAH: generated from #def default_table_CSS at line 98, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''    <link rel="stylesheet" type="text/css" href="/style/table.css" />
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def default_form_CSS(self, **KWS):



        ## CHEETAH: generated from #def default_form_CSS at line 101, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''    <link rel="stylesheet" type="text/css" href="/style/form.css" />
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def default_tabs_CSS(self, **KWS):



        ## CHEETAH: generated from #def default_tabs_CSS at line 104, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''    <link rel="stylesheet" type="text/css" href="/style/tabs.css" />
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def default_tabs_CSS2(self, **KWS):



        ## CHEETAH: generated from #def default_tabs_CSS2 at line 107, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''    <link rel="stylesheet" type="text/css" href="/style/tabs2.css" />
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def default_calendar_CSS(self, **KWS):



        ## CHEETAH: generated from #def default_calendar_CSS at line 110, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''    <link rel="stylesheet" type="text/css" href="/style/calendar.css" />
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def additionalCSS(self, **KWS):



        ## CHEETAH: generated from #def additionalCSS at line 113, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def additionalJavaScript(self, **KWS):



        ## CHEETAH: generated from #def additionalJavaScript at line 117, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def additionalHead(self, **KWS):



        ## CHEETAH: generated from #def additionalHead at line 120, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def content(self, **KWS):



        ## CHEETAH: generated from #def content at line 210, col 1.
        trans = KWS.get("trans")
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        write('''<h2>This space intentionally left blank</h2>
<p>''')
        _v = VFFSL(SL,"user.name",True) # '$user.name' on line 212, col 4
        if _v is not None: write(_filter(_v, rawExpr='$user.name')) # from line 212, col 4.
        write(''' / ''')
        _v = VFFSL(SL,"user.id",True) # '$user.id' on line 212, col 17
        if _v is not None: write(_filter(_v, rawExpr='$user.id')) # from line 212, col 17.
        write('''</p>
''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        

    def respond(self, trans=None):



        ## CHEETAH: main method generated for this template
        if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
            trans = self.transaction # is None unless self.awake() was called
        if not trans:
            trans = DummyTransaction()
            _dummyTrans = True
        else: _dummyTrans = False
        write = trans.response().write
        SL = self._CHEETAH__searchList
        _filter = self._CHEETAH__currentFilter
        
        ########################################
        ## START - generated method body
        
        #  $Id: MainTemplate.tmpl 3809 2007-01-19 14:16:23Z jodal $
        # 
        #  Copyright 2003-2005 Norwegian University of Science and Technology
        #  Copyright 2006 UNINETT AS
        # 
        #  This file is part of Network Administration Visualized (NAV)
        # 
        #  NAV is free software; you can redistribute it and/or modify
        #  it under the terms of the GNU General Public License as published by
        #  the Free Software Foundation; either version 2 of the License, or
        #  (at your option) any later version.
        # 
        #  NAV is distributed in the hope that it will be useful,
        #  but WITHOUT ANY WARRANTY; without even the implied warranty of
        #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        #  GNU General Public License for more details.
        # 
        #  You should have received a copy of the GNU General Public License
        #  along with NAV; if not, write to the Free Software
        #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        # 
        # 
        #  Authors: Magnar Sveen <magnars@idi.ntnu.no>
        #           Stein Magnus Jodal <stein.magnus.jodal@uninett.no>
        # 
        write('''
''')
        # 
        #  Every other template extends this one. It contains the header-information,
        #  NAV-logo and navigation-bar.
        # 
        #  The content-block should be replaced by all templates. CSS or JavaScript
        #  can be added by replacing the additionalCSS or additionalJavaScript blocks
        #  with a <link> tag refering to the new stylesheet or script file.
        # 
        #  To use without making a separate template, do this:
        # 
        #    import MainTemplate from foo.bar.MainTemplate
        #    page = MainTemplate()
        #    page.content = lambda: "<h1>Foo</h1>Bar"
        # 
        #  The navbar is built according to the users preferences, with data in this
        #  form:
        # 
        #  $user
        #    +-- preferences
        #         +-- hidelogo                 :: boolean: should the navlogo be hidden?
        #         +-- navbar                   :: array of links
        #         |    +-- name                ::
        #         |    +-- uri                 ::
        #         +-- qlink1                   :: array of links
        #         |    +-- name                ::
        #         |    +-- uri                 ::
        #         +-- qlink2                   :: array of links
        #              +-- name                ::
        #              +-- uri                 ::
        # 
        #  The template uses images in $imagefolder/main/, where $imagefolder
        #  defaults to "/images".
        # 
        write('''


''')
        self._CHEETAH__globalSetVars["rowcycler"] = cycler.cycler('evenrow', 'oddrow')
        self._CHEETAH__globalSetVars["cellcycler"] = cycler.cycler('evencell', 'oddcell')
        write('''
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
''')
        _v = VFFSL(SL,"additionalMeta",False)() # '$additionalMeta()' on line 84, col 1
        if _v is not None: write(_filter(_v, rawExpr='$additionalMeta()')) # from line 84, col 1.
        write('''

''')
        if VFFSL(SL,"title",True): # generated from line 86, col 1
            title = "NAV - " + VFFSL(SL,"title",True)
        else: # generated from line 88, col 1
            title = "NAV"
        write('''    <title>''')
        _v = VFFSL(SL,"title",True) # '$title' on line 91, col 12
        if _v is not None: write(_filter(_v, rawExpr='$title')) # from line 91, col 12.
        write('''</title>

''')
        _v = VFFSL(SL,"standardCSS",False)() # '$standardCSS()' on line 96, col 1
        if _v is not None: write(_filter(_v, rawExpr='$standardCSS()')) # from line 96, col 1.
        write('''

''')
        _v = VFFSL(SL,"additionalCSS",False)() # '$additionalCSS()' on line 115, col 1
        if _v is not None: write(_filter(_v, rawExpr='$additionalCSS()')) # from line 115, col 1.
        write('''
    <script type="text/javascript" src="/js/default.js"></script>
''')
        _v = VFFSL(SL,"additionalJavaScript",False)() # '$additionalJavaScript()' on line 119, col 1
        if _v is not None: write(_filter(_v, rawExpr='$additionalJavaScript()')) # from line 119, col 1.
        write('''
''')
        _v = VFFSL(SL,"additionalHead",False)() # '$additionalHead()' on line 122, col 1
        if _v is not None: write(_filter(_v, rawExpr='$additionalHead()')) # from line 122, col 1.
        write('''
</head>

<body ''')
        _v = VFFSL(SL,"bodyOnLoad",True) # '$bodyOnLoad' on line 125, col 7
        if _v is not None: write(_filter(_v, rawExpr='$bodyOnLoad')) # from line 125, col 7.
        write('''>

<div id="header">

''')
        if not VFFSL(SL,"user.preferences.hidelogo",True): # generated from line 129, col 1
            write('''<div id="navlogo" onclick="document.location=\'/\';"><h1>NAV</h1></div>
''')
        write('''
<div id="navbar">
<table>
    <tr>
''')
        separate = False
        for link in VFFSL(SL,"user.preferences.navbar",True): # generated from line 137, col 1
            if shouldShow(VFFSL(SL,"link.uri",True), VFFSL(SL,"user",True)): # generated from line 138, col 1
                if VFFSL(SL,"separate",True): # generated from line 139, col 3
                    write('''        <td><img src="''')
                    _v = VFFSL(SL,"imagefolder",True) # '$imagefolder' on line 140, col 23
                    if _v is not None: write(_filter(_v, rawExpr='$imagefolder')) # from line 140, col 23.
                    write('''/main/navbar-separator.gif" alt="" /></td>
''')
                write('''        <td class="entry"><a class="navbar" href="''')
                _v = VFFSL(SL,"link.uri",True) # '$link.uri' on line 142, col 51
                if _v is not None: write(_filter(_v, rawExpr='$link.uri')) # from line 142, col 51.
                write('''">''')
                _v = VFFSL(SL,"link.name",True) # '$link.name' on line 142, col 62
                if _v is not None: write(_filter(_v, rawExpr='$link.name')) # from line 142, col 62.
                write('''</a></td>
''')
                separate = True
        if VFFSL(SL,"user.preferences.qlink1",True): # generated from line 146, col 1
            write('''        <td><img src="''')
            _v = VFFSL(SL,"imagefolder",True) # '$imagefolder' on line 147, col 23
            if _v is not None: write(_filter(_v, rawExpr='$imagefolder')) # from line 147, col 23.
            write('''/main/quicklink-start.gif" alt="" /></td>
        <td class="list">
            <select onchange="return jump(this);">
                <option style="color: #669" selected="selected"> Quicklink #1 </option>
''')
            for link in VFFSL(SL,"user.preferences.qlink1",True): # generated from line 151, col 3
                if shouldShow(VFFSL(SL,"link.uri",True), VFFSL(SL,"user",True)): # generated from line 152, col 3
                    write('''                <option value="''')
                    _v = VFFSL(SL,"link.uri",True) # '$link.uri' on line 153, col 32
                    if _v is not None: write(_filter(_v, rawExpr='$link.uri')) # from line 153, col 32.
                    write('''"> ''')
                    _v = VFFSL(SL,"link.name",True) # '$link.name' on line 153, col 44
                    if _v is not None: write(_filter(_v, rawExpr='$link.name')) # from line 153, col 44.
                    write(''' </option>
''')
            write('''            </select>
        </td>
        <td><img src="''')
            _v = VFFSL(SL,"imagefolder",True) # '$imagefolder' on line 158, col 23
            if _v is not None: write(_filter(_v, rawExpr='$imagefolder')) # from line 158, col 23.
            write('''/main/quicklink-end.gif" alt="" /></td>
''')
        if VFFSL(SL,"user.preferences.qlink2",True): # generated from line 160, col 1
            write('''        <td><img src="''')
            _v = VFFSL(SL,"imagefolder",True) # '$imagefolder' on line 161, col 23
            if _v is not None: write(_filter(_v, rawExpr='$imagefolder')) # from line 161, col 23.
            write('''/main/quicklink-start.gif" alt="" /></td>
        <td class="list">
            <select onchange="return jump(this);">
                <option style="color: #669" selected="selected"> Quicklink #2 </option>
''')
            for link in VFFSL(SL,"user.preferences.qlink2",True): # generated from line 165, col 3
                if shouldShow(VFFSL(SL,"link.uri",True), VFFSL(SL,"user",True)): # generated from line 166, col 3
                    write('''                <option value="''')
                    _v = VFFSL(SL,"link.uri",True) # '$link.uri' on line 167, col 32
                    if _v is not None: write(_filter(_v, rawExpr='$link.uri')) # from line 167, col 32.
                    write('''"> ''')
                    _v = VFFSL(SL,"link.name",True) # '$link.name' on line 167, col 44
                    if _v is not None: write(_filter(_v, rawExpr='$link.name')) # from line 167, col 44.
                    write(''' </option>
''')
            write('''            </select>
        </td>
        <td><img src="''')
            _v = VFFSL(SL,"imagefolder",True) # '$imagefolder' on line 172, col 23
            if _v is not None: write(_filter(_v, rawExpr='$imagefolder')) # from line 172, col 23.
            write('''/main/quicklink-end.gif" alt="" /></td>
''')
        write('''        <td class="spacer"><img src="''')
        _v = VFFSL(SL,"imagefolder",True) # '$imagefolder' on line 174, col 38
        if _v is not None: write(_filter(_v, rawExpr='$imagefolder')) # from line 174, col 38.
        write('''/main/navbar-separator.gif" alt="" /></td>
''')
        if VFFSL(SL,"user.id",True) > 0: # generated from line 175, col 1
            write('''        <td class="entry"><a class="navbar" href="/index/logout">Logout ''')
            _v = VFFSL(SL,"user.login",True) # '$user.login' on line 176, col 73
            if _v is not None: write(_filter(_v, rawExpr='$user.login')) # from line 176, col 73.
            write('''</a></td>
''')
        else: # generated from line 177, col 1
            write('''        <td class="entry"><a class="navbar" href="/index/login">Login</a></td>
''')
        write('''    </tr>
</table>
</div> <!-- navbar end -->

<div id="navpath">
''')
        if VFFSL(SL,"path",True): # generated from line 185, col 1
            separate = False
            write('''    <span>Current path:</span>
''')
            for step in VFFSL(SL,"path",True): # generated from line 188, col 5
                if VFFSL(SL,"separate",True): # generated from line 189, col 9
                    write('''    &gt;
''')
                if VFFSL(SL,"step",True)[1]: # generated from line 192, col 9
                    write('''    <a href="''')
                    _v = VFFSL(SL,"step",True)[1] # '$step[1]' on line 193, col 14
                    if _v is not None: write(_filter(_v, rawExpr='$step[1]')) # from line 193, col 14.
                    write('''">''')
                    _v = VFFSL(SL,"step",True)[0] # '$step[0]' on line 193, col 24
                    if _v is not None: write(_filter(_v, rawExpr='$step[0]')) # from line 193, col 24.
                    write('''</a>
''')
                else: # generated from line 194, col 9
                    write('''    ''')
                    _v = VFFSL(SL,"step",True)[0] # '$step[0]' on line 195, col 5
                    if _v is not None: write(_filter(_v, rawExpr='$step[0]')) # from line 195, col 5.
                    write('''
''')
                separate = True
        else: # generated from line 199, col 1
            separate = False
            write('''    <p class="error"> No current path is set! Find out how here:</p>
    <pre>template.path = [("Home", "/"), ("Status", False)]</pre>
''')
        write('''</div> <!-- navpath end -->

</div> <!-- header end -->

<div id="navbody">

''')
        _v = VFFSL(SL,"content",False)() # '$content()' on line 214, col 1
        if _v is not None: write(_filter(_v, rawExpr='$content()')) # from line 214, col 1.
        write('''

''')
        version = VFFSL(SL,"nav.buildconf.VERSION",True)
        write('''<div id="footer"><hr /><p class="copyright">
<a href="/about/">Network Administration Visualized</a> ''')
        _v = VFFSL(SL,"version",True) # '$version' on line 218, col 57
        if _v is not None: write(_filter(_v, rawExpr='$version')) # from line 218, col 57.
        write('''<br />
''')
        if VFFSL(SL,"user.id",True) == 0: # generated from line 219, col 1
            write('''You are not logged in.
''')
        else: # generated from line 221, col 1
            write('''You are logged in as <a href="/index/userinfo">''')
            _v = VFFSL(SL,"user.name",True) # '$user.name' on line 222, col 48
            if _v is not None: write(_filter(_v, rawExpr='$user.name')) # from line 222, col 48.
            write('''</a>.
''')
        write('''</p></div>

</div> <!-- navbody end -->

</body>
</html>

''')
        
        ########################################
        ## END - generated method body
        
        return _dummyTrans and trans.response().getvalue() or ""
        
    ##################################################
    ## CHEETAH GENERATED ATTRIBUTES


    _CHEETAH__instanceInitialized = False

    _CHEETAH_version = __CHEETAH_version__

    _CHEETAH_versionTuple = __CHEETAH_versionTuple__

    _CHEETAH_genTime = __CHEETAH_genTime__

    _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__

    _CHEETAH_src = __CHEETAH_src__

    _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__

    imagefolder = "/images"

    bodyOnLoad = ""

    title = ""

    path = False

    _mainCheetahMethod_for_MainTemplate= 'respond'

## END CLASS DEFINITION

if not hasattr(MainTemplate, '_initCheetahAttributes'):
    templateAPIClass = getattr(MainTemplate, '_CHEETAH_templateClass', Template)
    templateAPIClass._addCheetahPlumbingCodeToClass(MainTemplate)


# CHEETAH was developed by Tavis Rudd and Mike Orr
# with code, advice and input from many other volunteers.
# For more information visit http://www.CheetahTemplate.org/

##################################################
## if run from command line:
if __name__ == '__main__':
    from Cheetah.TemplateCmdLineIface import CmdLineIface
    CmdLineIface(templateObj=MainTemplate()).run()


