<!--
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.
-->
<project name="VXQuery">
    <bannerLeft>
        <name>VXQuery</name>
        <src>images/VXQuery.png</src>
        <href>http://incubator.apache.org/vxquery/</href>
    </bannerLeft>

    <bannerRight>
        <name>Apache Incubator</name>
        <src>images/apache-incubator-logo.png</src>
        <href>http://incubator.apache.org/</href>
    </bannerRight>

    <body>
      <menu ref="reports"/>
      <menu ref="modules"/>
    </body>
</project>

