<!doctype html>
<!--
    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

         https://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.
-->
<html lang="en" prefix="og: https://ogp.me/ns#">
  <head>
      <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>Apache Template - Tweets</title>


    <!-- Below Meta Tags Generated via https://www.opengraph.xyz -->
    <!-- If you don't care about social media then remove this section -->
    <!-- Values are set in pelicanconf.py -->
    <!-- HTML Meta Tags -->
    <meta name="description" content="Provides a template for projects wishing to use the Pelican ASF static content system">
    <!-- Facebook Meta Tags -->
    <meta property="og:url" content="https://template.apache.org">
    <meta property="og:type" content="website">
    <meta property="og:title" content="Apache Template">
    <meta property="og:description" content="Provides a template for projects wishing to use the Pelican ASF static content system">
    <meta property="og:image" content="https://template.apache.org/images/logo.png">
    <!-- Twitter Meta Tags -->
    <meta name="twitter:card" content="summary_large_image">
    <meta property="twitter:domain" content="template.apache.org">
    <meta property="twitter:url" content="https://template.apache.org">
    <meta name="twitter:title" content="Apache Template">
    <meta name="twitter:description" content="Provides a template for projects wishing to use the Pelican ASF static content system">
    <meta name="twitter:image" content="https://template.apache.org/images/logo.png">
    <!-- Above Meta Tags Generated via https://www.opengraph.xyz -->

    <!-- Start favicon styles - use apache feather -->
    <link rel="shortcut icon" href="https://www.apache.org/favicons/favicon.ico">
    <link rel="apple-touch-icon" sizes="57x57" href="https://www.apache.org/favicons/apple-touch-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="https://www.apache.org/favicons/apple-touch-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="https://www.apache.org/favicons/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="https://www.apache.org/favicons/apple-touch-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="https://www.apache.org/favicons/apple-touch-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="https://www.apache.org/favicons/apple-touch-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="https://www.apache.org/favicons/apple-touch-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="https://www.apache.org/favicons/apple-touch-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="https://www.apache.org/favicons/apple-touch-icon-180x180.png">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-194x194.png" sizes="194x194">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-16x16.png" sizes="16x16">
    <!--<link rel="manifest" href="https://www.apache.org/favicons/manifest.json" crossorigin="anonymous">-->
    <meta name="msapplication-TileColor" content="#603cba">
    <meta name="msapplication-TileImage" content="https://www.apache.org/favicons/mstile-144x144.png">
    <meta name="msapplication-config" content="https://www.apache.org/favicons/browserconfig.xml">
    <meta name="theme-color" content="#282661">
    <!-- End favicon styles - use apache feather -->

    <!-- Start load of stylesheets (will need to upgrade periodically) -->
    <link rel="stylesheet"
      href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
      integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
      crossorigin="anonymous">
    <link rel="stylesheet"
      href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/3.0.1/github-markdown.min.css"
      crossorigin="anonymous">
    <!-- Override css for this site. You can do this inline as shown here or with a site asset. See comment.-->
    <style>
html {
  font-size: 18px;
}
body {
  font-family: 'Montserrat', 'Source Sans Pro','Helvetica Neue', Helvetica, Arial, sans-serif;
  font-weight: 300;
  background-color: #fff;
}
.markdown-body {
  box-sizing: border-box;
  min-width: 200px;
  max-width: 980px;
  margin: 0 auto;
  padding: 45px;
}
@media (max-width: 767px) {
  .markdown-body {
    padding: 15px;
  }
}
.footer {
  border-top: 1px solid black;
  padding-top: 3px;
}
.right-align {
  text-align: right;
}
.center-align {
  text-align: center;
}
blockquote {
  background: bisque;
}
.bg-primary {
  background-color: #005bff!important;
}
a {
  font-weight: 400;
  color: #4643aa;
#  color: #005bff;
}
#li {
#  line-height: 2;
#}
.h1, h1 {
  font-size: 1.5rem;
}
.h2, h2 {
  font-size: 1.4rem;
}
.h3, h3 {
  font-size: 1.3rem;
}
.h4, h4 {
  font-size: 1.2rem;
}
.h5, h5 {
  font-size: 1.1rem;
}
.headerlink {
  visibility: hidden;
}
h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
  visibility: visible
}
    </style>
    <!--<link rel="stylesheet" href="/styles/styles.css">-->
    <!-- End stylesheets -->
  </head>

  <body id="index" class="home">
    <!-- Start branding and top navigation -->
    <nav class="navbar navbar-expand-lg navbar-dark bg-primary">
      <img src="https://www.apache.org/foundation/press/kit/feather.svg"
        width="30" height="30" class="d-inline-block align-top"
        alt="Apache Feather">
      <a class="navbar-brand" href="/">Apache Template</a>
      <button class="navbar-toggler" type="button"
        data-toggle="collapse" data-target="#navbarSupportedContent"
        aria-controls="navbarSupportedContent" aria-expanded="false"
        aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="/index.html">Home</a>
          </li>
          <li class="nav-item active dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="exampleDropdown"
              role="button" data-toggle="dropdown" aria-expanded="false">Examples</a>
            <ul class="dropdown-menu" aria-labelledby="exampleDropdown">
              <li><a class="dropdown-item" href="/board.html">Board</a></li>
              <li><a class="dropdown-item" href="/featured.html/">Featured</a></li>
              <li><a class="dropdown-item" href="/committees.html">Committees</a></li>
              <li><a class="dropdown-item" href="/projects.html">Projects</a></li>
              <li><a class="dropdown-item" href="/project_list.html">Project Columns</a></li>
              <li><hr class="dropdown-divider"></li>
              <li><a class="dropdown-item" href="/eccn.html">Site Data</a></li>
              <li><a class="dropdown-item" href="/tweets.html">Tweets</a></li>
              <li><a class="dropdown-item" href="/blogs.html">Blogs</a></li>
            </ul>
          </li>
          <li class="nav-item active">
            <a class="nav-link" href="/downloads.html">Downloads</a>
          </li>
          <li class="nav-item active">
            <a class="nav-link" href="/faq.html">FAQ</a>
          </li>
        </ul>
        <div class="navbar-nav">
          <div class="nav-item dropdown dropdown-menu-right active">
            <a class="nav-link dropdown-toggle" href="#"
              role="button" data-toggle="dropdown" aria-haspopup="true"
              aria-expanded="false">About</a>
            <div class="dropdown-menu dropdown-menu-right">
              <a class="dropdown-item" href="https://www.apache.org/">Foundation</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item"
                href="https://www.apache.org/licenses/">License</a>
              <a class="dropdown-item"
                href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
              <a class="dropdown-item"
                href="https://www.apache.org/foundation/thanks.html">Thanks</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item"
                href="https://www.apache.org/security/">Security</a>
            </div>
          </div>
        </div>
      </div>
    </nav>
    <!-- End branding and top navigation -->

    <!-- Start main content area -->
    <div class="container">
      <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="#">Tweets</a></p>
    <h1>Tweets</h1>
    

    <!-- Licensed under ALv2 -->
<h2 id="tweet">Tweet<a class="headerlink" href="#tweet" title="Permalink">&para;</a></h2>
<p>1417119350654480392
We're ramping up for ApacheCon Asia! Learn more about the event from Sheng Wu and Willem Jiang. Join us online 6-8 August --hundreds of sessions over a dozen tracks-- registration is free for all! <a href="https://t.co/DrcI2742Hx">https://t.co/DrcI2742Hx</a> #Apache #OpenSource #innovation #community #conference <a href="https://t.co/DOmskWCwPp">https://t.co/DOmskWCwPp</a></p>


    </div>
    <!-- End main content area -->

    <!-- Start footer -->
    <footer class="navbar-expand-lg navbar-light bg-light">
      <div class="footer" id="footer">
        <div class="row container-fluid">
          <div class="col-sm">
            <a href="https://www.apache.org/">
              <img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" style="border: 0; margin-top: 2px" width="200">
            </a>
          </div>
          <div class="col-sm center-align">
            <a href="https://www.apache.org/foundation/contributing.html">
              <img src="https://www.apache.org/images/SupportApache-small.png" alt="Support The ASF" height="80" width="80">
            </a>
          </div>
          <div class="col-sm right-align">
            <a class="acevent" data-format="wide" data-mode="light" data-event="random"></a>
          </div>
        </div>

        <div class="container-fluid">
          Copyright &copy; 2021 The Apache Software Foundation,
          Licensed under the
          <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a>
          <br/>
          Apache, the Apache feather logo, and "Project" are trademarks or registered trademarks of <a href="https://www.apache.org/">The Apache Software Foundation.</a>
        </div><!-- #container-fluid -->

      </div>
    </footer>
    <!-- End footer -->

    <!-- Start the loading of javascript frameworks (will need to upgrade periodically) -->
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
    <script
      src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.slim.min.js"
      integrity="sha512-6ORWJX/LrnSjBzwefdNUyLCMTIsGoNP6NftMy2UAm1JBm6PRZCO1d7OHBStWpVFZLO+RerTvqX/Z9mBFfCJZ4A=="
      crossorigin="anonymous"></script>
    <script
      src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
      integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
      crossorigin="anonymous"></script>
    <script
      src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
      integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
      crossorigin="anonymous"></script>
    <!-- End the loading of javascript frameworks -->

    <!-- Source: tweets.ezmd; Template: page; Url: pages/.html -->
  </body>
</html>