<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!--

    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.
  -->
{% block head %}
<title>{{ page.title }}</title>
<meta name="description" content="The official developer website of the Apache OpenOffice open source project, home of OpenOffice Writer, Calc, Impress, Draw and Base." />
<meta name="keywords" content="OpenOffice, Open Office, Apache OpenOffice, Apache Open Office, OpenOffice.org, Developer, Project, Website, Official, Writer, Calc, Impress, Draw, Base, ODF, Open Document Format" />
<meta name="google-site-verification" content="uu79eqa3Tzx81rhyk66kY0sIwrFIayoneGXFEy-FkNY" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<link href="/theme/css/openoffice.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
{% endblock %}
</head>

<body>
  <div id="banner">
      <div id="bannerleft"><a alt="Apache OpenOffice" href="/">
          <img id="logo" alt="Apache OpenOffice" src="/images/AOO4_website_logo.png"/></a></div>

   <div id="bannercenter"><br/>&nbsp;The Free and Open Productivity Suite</div>
  </div>
  <div id="clear"></div>
  <div id="sidenav">
    {% block sidenav %}{% include "sidenav.html" %}{% endblock %}
  </div>
  <div id="contenta">
    {% block content %}
    {% endblock %}
  </div>

  <div id="footera">

    <div id="asfbanner">
      <p><a href="https://www.apache.org/events/current-event.html"><img src="https://www.apache.org/events/current-event-234x60.png" alt="Apache Events" height="60" width="234" /></a></p>
    </div>

    <div id="poweredby">
      <p><a href="https://www.apache.org/"><img src="/images/asf_logo_small.png" alt="Apache Software Foundation" height="76" width="188"/></a></p>
    </div>

    <div id="copyrighta">
      <p style="text-align:center;">
          Copyright &copy; 2011-2021 The Apache Software Foundation, Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> | <a href="/contact.html">Contact Us</a> | <a href="/terms.html">Terms of Use</a> | <a href="/privacy.html">Privacy</a>
      </p>
      <p>
          Apache, OpenOffice, OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation.
          The Apache feather logo is a trademark of The Apache Software Foundation.
          Other names appearing on the site may be trademarks of their respective owners.
      </p>

    </div>
  </div>

</body>
</html>
