<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
          
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->

    <!-- ====================================================================== -->
    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE TEMPLATE INSTEAD! -->
    <!-- Main Page Section -->
    <!-- ====================================================================== -->
    
     <html>
        <head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
		<meta name="author" content="OpenMeetings Team">
		<meta name="email" content="sebawagner@apache.org">
		<title>OpenMeetings API Classes</title>
		<link rel="stylesheet" type="text/css" href="openmeetings_docs.css">
        </head>
	<body>
		#set( $foo = ".html" )
	
       <div class="navigation">
	   #foreach ( $class in $classes )
            <div>
            <a href="$class.get("name")$foo" target="_PARENT"><b>$class.get("name")</b></a><br/>
            <div class="navigation_comment"><i >$class.get("comment")</i></div>
            </div>
        #end
        </div>
	
	
	</body>
	</html>
