<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  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="jSieve">

  <bannerLeft>
    <name>JAMES jSieve</name>
    <src>images/james-jsieve-logo.gif</src>
    <href>http://james.apache.org/</href>
    <alt>james-jsieve-logo.gif</alt>
  </bannerLeft>

  <body>
    <menu name="jSieve">
      <item name="Core" href="http://james.apache.org/jsieve/core/index.html" />
      <item name="Util" href="http://james.apache.org/jsieve/util/index.html" />
      <item name="Changes" href="http://james.apache.org/jsieve/jira-report.html" />
      <item name="Release Notes" href="http://james.apache.org/jsieve/release-notes.html" />
      <item name="JavaDocs" href="http://james.apache.org/jsieve/apidocs/index.html" />
      <item
        name="Technical Reports"
        href="https://builds.apache.org/hudson/view/G-L/view/James/job/jsieve-trunk/site/index.html" />
    </menu>

    <menu name='Specifications' inherit='bottom'>
      <item name="RFC 2234 ABNF"
        href="http://www.ietf.org/rfc/rfc2234.txt" />
      <item name="RFC 2244 ACAP"
        href="http://www.ietf.org/rfc/rfc2244.txt" />
      <item name="RFC 2298 MDN"
        href="http://www.ietf.org/rfc/rfc2298.txt" />
      <item name="RFC 5228 Sieve"
        href="http://tools.ietf.org/html/rfc5228" />
      <item name='RFC 4790 IAPCR'
        href='http://tools.ietf.org/html/rfc4790'/>
      <item name='RFC 5173 Body Extension'
        href='http://tools.ietf.org/html/rfc5173'/>
    </menu>
  </body>
</project>
