<!DOCTYPE html>
<html lang="en">
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!-->
<head>
<meta charset="utf-8">
<title>The Apache OFBiz&reg; Project - Release Notes 16.11.04</title>
<meta name="Description" content="OFBiz is an open source enterprise automation software project licensed under the Apache License. It means you are not alone and can work with many others." />
<meta name="Robots" content="index,follow" />
<!-- Mobile Specific Metas
    ================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- CSS
    ================================================== -->
<!-- Bootstrap  -->
<link type="text/css" rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<!-- web font  -->
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,300,800" rel="stylesheet" type="text/css">
<!-- plugin css  -->
<link rel="stylesheet" type="text/css" href="/js/plugins/pretty-photo/css/prettyPhoto.css" />
<link rel="stylesheet" type="text/css" href="/js/plugins/rs-plugin/css/settings.css" media="screen" />
<link type="text/css" rel="stylesheet" href="/js/plugins/hoverdir/css/style.css">
<!-- icon fonts -->
<link type="text/css" rel="stylesheet" href="/font-icons/custom-icons/css/custom-icons.css">
<link type="text/css" rel="stylesheet" href="/font-icons/custom-icons/css/custom-icons-ie7.css">
<!-- Custom css -->
<link type="text/css" rel="stylesheet" href="/css/layout.css">
<link type="text/css" id="colors" rel="stylesheet" href="/css/colors.css">
<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<!--[if gte IE 9]><style type="text/css">.iconBig, .active, .hover a , .Shover a { filter: none !important; } </style> <![endif]-->
<script src="js/modernizr-2.6.1.min.js"></script>
<!-- Favicons
    ================================================== -->
<link rel="shortcut icon" href="/images/favicon.ico">
<link rel="apple-touch-icon" href="/images/apple-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="/images/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="144x144" href="/images/apple-icon-144x144.png">
</head>
<body>
<!-- header -->
<header id="mainHeader" class="clearfix">
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container"> <a href="index.html" class="brand"><img src="images/ofbiz_logo.png" alt="Apache OFBiz Logo"/></a>
        <nav id="mainMenu" class="clearfix">
          <ul>
            <li><a href="index.html" class="firstLevel">Home</a></li>
            <li><a href="#" class="firstLevel">Getting Started</a>
              <ul>
                <li><a href="developers.html" class="">Developers</a></li>
                <li><a href="business-users.html" class="last">Business Users</a></li>
              </ul>
            </li>
            <li><a href="#" class="firstLevel">News</a>
              <ul>
                <li><a href="//twitter.com/apacheofbiz" target="external">Twitter</a></li>
                <li><a href="//blogs.apache.org/ofbiz/" target="external" class="last">Blog</a></li>
              </ul>
            </li>
            <li><a href="#" class="firstLevel">Documentation</a>
              <ul>
                <li><a href="//cwiki.apache.org/confluence/display/OFBIZ/Documentation#Documentation-End-UserDocumentation" target="external" class="">User Documentation</a></li>
                <li><a href="//cwiki.apache.org/confluence/display/OFBIZ/Technical+Documentation" target="external" class="">Technical Documentation</a></li>
                <li><a href="//cwiki.apache.org/confluence/display/OFBIZ/Home" target="external" class="">Wiki</a></li>
                <li><a href="#" class="firstLevel">API Reference</a>
                  <ul>
                    <li title="Trunk API">
                      <a href="//ci.apache.org/projects/ofbiz/site/trunk/javadocs/" target="external">Trunk API</a></li>
                    </li>
                    <li title="Stable release  API">
                      <a href="//ci.apache.org/projects/ofbiz/site/stable/javadocs/" target="external">Stable Release API</a></li>
                    </li>
                    <li title="Next release API">
                      <a href="//ci.apache.org/projects/ofbiz/site/next/javadocs/" target="external">Next Release API</a></li>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li><a href="#" class="firstLevel">Community</a>
              <ul>
                <li><a href="getting-involved.html">Getting Involved</a></li>                
                <li><a href="mailing-lists.html">Mailing Lists</a></li>
                <li><a href="source-repositories.html">Source Repository</a></li>
                <li><a href="download.html">Downloads</a></li>
                <li><a href="//issues.apache.org/jira/browse/OFBIZ/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel" target="external" >Issue Tracker</a></li>
                <li><a href="faqs.html" class="last">FAQ</a></li>
              </ul>
            </li>
            <li><a href="ofbiz-demos.html" class="firstLevel">Demos</a></li>
		  <li>
		    <a href="//twitter.com/ApacheOfbiz" class="icon-twitter-bird socialIcon tips"
		      target="external" title="follow us on Twitter"><span>twitter</span></a>
		  </li>
		  <li><a href="//www.youtube.com/user/ofbiz" class="icon-play socialIcon tips"  title="follow us on Youtube"><span>Youtube</span></a></li>
		  <li><a href="//www.facebook.com/Apache-OFBiz-1478219232210477/?ref=page_internal" class="icon-facebook socialIcon tips"  title="follow us on Facebook"><span>facebook</span></a></li>
		  <!--<li><a href="#" class="icon-rss socialIcon tips"  title="Our rss feed"><span>rss feed</span></a></li>         
		  <li><a href="#" class="icon-gplus socialIcon tips"  title="follow us on Google +"><span>google +</span></a></li>
		  <li><a href="#" class="icon-instagram socialIcon tips"  title="follow us on Instagram"><span>instagram</span></a></li>
		  <li><a href="#" class="icon-linkedin socialIcon tips"  title="follow us on Linkedin"><span>linkedin</span></a></li>
		  <li><a href="#" class="icon-pinterest-circled socialIcon tips"  title="follow us on Pinterest"><span>Pinterest</span></a></li>-->
          </ul>
        </nav>
      </div>
    </div>
  </div>
</header>
<!-- header -->
<!-- globalWrapper -->
<div id="globalWrapper">
 <!-- page content -->
 <section id="content" class="fullWidth">
    <header class="headerPage">
      <div class="container clearfix">
        <div class="row">
          <h1 class="span8">Release Notes 16.11.04</h1>
      <div class="span4" id="navTrail"> <a href="index.html" class="homeLink">home</a><span>/</span><a href="download.html">Download</a><span>/</span><span class="current">Release Notes 16.11.04</span> </div>
        </div>
      </div>
    </header>
  <section id="content" class="features" >
  <div class="slice clearfix">
      <div class="container">
<div class="row">
  <div>
  <p>Apache OFBiz&reg; 16.11.04, released in 2018-01-02, is the fourth release of the 16.11 series, that has been stabilized since November 2016.</p>
<h2>Bugs</h2>
<ul>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-5938'>OFBIZ-5938</a>] -         GlAccountOrganizations manually added using accounting forms do not appear on trial report because fromDate gets set to NULL</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-6054'>OFBIZ-6054</a>] -         ofbizsetup cannot create first customer. problem with state/province dropdown</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-6774'>OFBIZ-6774</a>] -         ACCTG TRANS ENTRIES PDF link on invoiceOverview does not work</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-7253'>OFBIZ-7253</a>] -         UI issue on web pos for different themes</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-7438'>OFBIZ-7438</a>] -         Inventory Report PDF lists all available statusId&#39;s irrespective of selection criteria</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-8153'>OFBIZ-8153</a>] -         LabelManager doesn&#39;t search labels in .groovy files</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9143'>OFBIZ-9143</a>] -         The copyAgreement service fails</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9240'>OFBIZ-9240</a>] -         Ecommerce login/logout don&#39;t work properly for trunk and stable and even old</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9259'>OFBIZ-9259</a>] -         Uploading images at catalog/control/addImageForProduct does not work</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9316'>OFBIZ-9316</a>] -         Error displayed while adding WorkEffort Contact Mechs.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9317'>OFBIZ-9317</a>] -         WorkEffort shows error on adding party with specific role to Timesheet.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9344'>OFBIZ-9344</a>] -         Incorrect MimeTypeId value shown if the form is submitted</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9365'>OFBIZ-9365</a>] -         Screen rendering error on Content Advanced Search page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9377'>OFBIZ-9377</a>] -         fix tag &quot;disable-if-empty&quot; in menus if field has no value</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9404'>OFBIZ-9404</a>] -         Insufficient checking of checkOutPaymentId in CheckOutEvents.getSelectedPaymentMethods</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9424'>OFBIZ-9424</a>] -         Typo in value of SfaAddSalesForecastDetail uiLabel in MarketingUiLabels.xml</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9426'>OFBIZ-9426</a>] -         The following required parameter is missing: [IN] [removeWebSitePathAlias.fromDate].</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9428'>OFBIZ-9428</a>] -         getResultsSizeAfterPartialList() return wrong count with distinct() for View Entity</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9432'>OFBIZ-9432</a>] -         Error running the simple-method: Error running groovy script</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9438'>OFBIZ-9438</a>] -         add gift certificate in purchase order cause exception</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9445'>OFBIZ-9445</a>] -         ContentWorker#findAlternateLocaleContent(Delegator, GenericValue, Locale) does not use fallback locale</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9446'>OFBIZ-9446</a>] -         https://localhost:8443/ecomseo/checkLogin exception</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9449'>OFBIZ-9449</a>] -         Missing secure port in URLs when sending mails</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9455'>OFBIZ-9455</a>] -         Required check missing for supplier product id and last price on Add Product Supplier page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9456'>OFBIZ-9456</a>] -         Required check missing for Routing Task Name on Add Routing Task page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9459'>OFBIZ-9459</a>] -         Wrong screen redirection after adding note on Lead profile screen</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9462'>OFBIZ-9462</a>] -         On create order, the page shows orderview screen, but Url does not change. It shows processorder.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9468'>OFBIZ-9468</a>] -         UI issue in ATP/QOH table on Create Purchase Order screen</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9470'>OFBIZ-9470</a>] -         Missing productId in input field after Atp/Qoh button is clicked on create PO screen</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9473'>OFBIZ-9473</a>] -         Status of communication event role is marked &quot;Read&quot; on View Communication Event page.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9477'>OFBIZ-9477</a>] -         UI issue in Lead Lookup on find opportunity</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9499'>OFBIZ-9499</a>] -         FacilityId should be mandatory for &quot;Create Inventory Item&quot; form in EditInventoryItem screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9503'>OFBIZ-9503</a>] -         Fixed Asset Id field is below update button on EditInventoryItem page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9525'>OFBIZ-9525</a>] -         MRP incorrectly computes quantity already received in open purchase order shipments</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9526'>OFBIZ-9526</a>] -         MRP generates duplicate requirements when items are initially under minimum quantity and have with pending approved purchase orders.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9530'>OFBIZ-9530</a>] -         Missing action in empty if-statement in accounting.PaymentGatewayServices</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9532'>OFBIZ-9532</a>] -         Edit Party Group page does not shows current set values</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9535'>OFBIZ-9535</a>] -         Error in payment address for purchase invoice via service createinvoicefororder</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9542'>OFBIZ-9542</a>] -         Can&#39;t Create a new PartyAcctgPreference in 16.11.03</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9553'>OFBIZ-9553</a>] -         Creating Lead Source from profile page it redirects to empty profile page</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9578'>OFBIZ-9578</a>] -         Collection added to itself</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9606'>OFBIZ-9606</a>] -         LabelManager doesn&#39;t search labels in all elements in xml</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9621'>OFBIZ-9621</a>] -         MimeType displayed in HTML encoded pattern</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9623'>OFBIZ-9623</a>] -         Improvements in LabelReferences class</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9624'>OFBIZ-9624</a>] -         NullPointerException when calling EntityQuery#getFieldList</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9644'>OFBIZ-9644</a>] -         Fix references where Mime type is displayed in HTML encoded pattern</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9648'>OFBIZ-9648</a>] -         Deleting workeffort from Find WorkEffort page gives unusual response</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9655'>OFBIZ-9655</a>] -         Lead Profile missing if clicked on other menu</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9676'>OFBIZ-9676</a>] -         Error of GROUP BY in MSSQL</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9697'>OFBIZ-9697</a>] -         Create Related Account from Contact Profile redirect to empty profile screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9698'>OFBIZ-9698</a>] -         Party Id field missing while creating contact list party in the marketing component</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9725'>OFBIZ-9725</a>] -         Transaction Timeout in JavaEventHandler</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9745'>OFBIZ-9745</a>] -         Labels messed up because of missing UiLabels</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9753'>OFBIZ-9753</a>] -         &#39;Find Opportunities&#39; field name is reflecting in place of &#39;Opportunity Id&#39; on FindSalesOpportunity screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9838'>OFBIZ-9838</a>] -         Purchase Order is not getting canceled automatically if all items are canceled</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9896'>OFBIZ-9896</a>] -         Incorrect success message after creating prospect</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9899'>OFBIZ-9899</a>] -         UI Issue with Account Limit at Find Billing Account(s)</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9914'>OFBIZ-9914</a>] -         Issue in redirection while creating a new party group</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9915'>OFBIZ-9915</a>] -         Error printing Return PDF</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9922'>OFBIZ-9922</a>] -         Content related changes needs OFBiz server restart</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9964'>OFBIZ-9964</a>] -         UtilMisc.ensureLocale does not always return a valid Locale</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9967'>OFBIZ-9967</a>] -         In &#39;updateOrderContactMech&#39; service, A check should be added to call &#39;removeOrderContactMech&#39;.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9968'>OFBIZ-9968</a>] -         Duplicated dollar symbols should be removed from uiLabels.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9970'>OFBIZ-9970</a>] -         NullPointer Access in CategoryContentWrapper.getProductCategoryContentAsText when locale parameter is missing</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9971'>OFBIZ-9971</a>] -         Inventory transfer creates unnecessary record with 0</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9975'>OFBIZ-9975</a>] -         ShippingEvents.getShipGroupEstimate() method gives untraceable null pointer exception for BigDecimal comparison</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9977'>OFBIZ-9977</a>] -         While creating return fin account used currency must be same</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10007'>OFBIZ-10007</a>] -         Party Classification Groups are not listing on FindParty screen.</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10010'>OFBIZ-10010</a>] -         No option to create the account contacts in SFA component</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10027'>OFBIZ-10027</a>] -         Improvements in gift certificate process</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10037'>OFBIZ-10037</a>] -         Creating an example from the Ajax screen does not work</li>
</ul>
                                        
<h2>Improvements</h2>
<ul>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9675'>OFBIZ-9675</a>] -         Use ofbizCurrency macro and remove hardcoded ##0.00 string</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9862'>OFBIZ-9862</a>] -         Improve Rainbow theme showing themes</li>
</ul>
                                                                                                
<h2>Sub-tasks</h2>
<ul>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9529'>OFBIZ-9529</a>] -         [FB] Package org.apache.ofbiz.accounting.payment (Additional Bugs)</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-9567'>OFBIZ-9567</a>] -         [FB] Package org.apache.ofbiz.base.metrics</li>
<li>[<a href='//issues.apache.org/jira/browse/OFBIZ-10085'>OFBIZ-10085</a>] -         Prevent the possible return of the Robot attack</li>
</ul>
  </div>
</div>
</div>
</div>
</section>
</section><!-- footer -->
<footer class="footer1">
  <div class="container" id="footer">
    <div class="row">
      <div class="span6 timelineWidget">
        <h2>Latest tweets</h2>
        <!--
        <div class="divider"><span></span></div>
        <ul class="socialNetwork nav">
          <li>
            <a href="//twitter.com/ApacheOfbiz" class="icon-twitter-bird socialIcon tips"
              target="external" title="follow us on Twitter"><span>twitter</span></a>
          </li>
          <li><a href="//www.youtube.com/user/ofbiz" class="icon-play socialIcon tips"  title="follow us on Youtube"><span>Youtube</span></a></li>
          <li><a href="//www.facebook.com/Apache-OFBiz-1478219232210477/?ref=page_internal" class="icon-facebook socialIcon tips"  title="follow us on Facebook"><span>facebook</span></a></li>
          <li><a href="#" class="icon-rss socialIcon tips"  title="Our rss feed"><span>rss feed</span></a></li>
          <li><a href="#" class="icon-gplus socialIcon tips"  title="follow us on Google +"><span>google +</span></a></li>
          <li><a href="#" class="icon-instagram socialIcon tips"  title="follow us on Instagram"><span>instagram</span></a></li>
          <li><a href="#" class="icon-linkedin socialIcon tips"  title="follow us on Linkedin"><span>linkedin</span></a></li>
          <li><a href="#" class="icon-pinterest-circled socialIcon tips"  title="follow us on Pinterest"><span>Pinterest</span></a></li>
        </ul>
        -->
        <div id="twitterFrame"> <a class="twitter-timeline" href="//twitter.com/ApacheOfbiz?height=250" data-widget-id="588661945194192896"  data-tweet-limit="2" data-theme="dark" data-chrome="nofooter noheader transparent" >Tweets by @ApacheOfbiz</a>
          <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
        </div>
      </div>
      <div class="span3 contactWidget">
        <h2>Contact Community</h2>
        <div class="divider"><span></span></div>
        <ul>
          <li><a href="mailing-lists.html">Mailing Lists</a></li>
          <li><a href="source-repositories.html">Source Repository (Git)</a></li>
          <li><a href="//issues.apache.org/jira/browse/OFBIZ" target="external">Issue Tracker (Jira)</a></li>
          <li><a href="//www.youtube.com/user/ofbiz" target="external">OFBiz Youtube Channel</a></li>
          <li><a href="//vimeo.com/channels/apacheofbiz" target="external">OFBiz Vimeo Channel</a></li>
          <li>
            <a href="//s.apache.org/ofbiz-slack-channel" target="external">OFBiz Chat</a><br/>
            <span class="footer-note">
              Note: To chat with users and developers of Apache OFBiz.
              <br>Please create a Slack account using <a href="//s.apache.org/slack-invite" target="external">this invite link</a> and
              <a href="//s.apache.org/ofbiz-slack-channel" target="external">join the <b>#ofbiz channel</b>.</a>
              Please do <b>not</b> ask OFBiz questions in the #general channel.
            </span>
          </li>
        </ul>
      </div>
      <div class="span3 sociallWidget">
        <h2>ASF Information</h2>
        <div class="divider"><span></span></div>
        <ul>
          <li><a href="https://www.apache.org/foundation/" target="external">Apache Software Foundation</a></li>
          <li><a href="https://www.apache.org/events/current-event" target="external">Events</a></li>
          <li><a href="https://www.apache.org/foundation/sponsorship.html" target="external">Sponsorship</a>
          		and <a href="https://www.apache.org/foundation/contributing.html" target="external">Donations</a>
          </li>
          <li><a href="https://www.apache.org/foundation/thanks.html" target="external">Thanks</a></li>
          <li><a href="https://ofbiz.apache.org/security.html">Security</a></li>
          <li><a href="https://www.apache.org/licenses/" target="external">License</a></li>
        </ul>
      </div>
    </div>
  </div>
</footer>
<footer class="footer2" id="footerRights">
  <div class="container">
    <div class="row">
      <div class="span12">
        <p>
          Copyright © 2020 The Apache Software Foundation.
          <a href="https://www.apache.org/licenses/" target="external">Licensed under the  Apache License, Version 2.0</a>.<br/>
          Apache OFBiz, OFBiz, the project logo and the Apache feather logo are trademarks of <a href="https://www.apache.org/" target="external">The Apache Software Foundation.</a>
        </p>
      </div>
    </div>
  </div>
</footer>
<!-- footer -->
</div>
<!-- globalWrapper -->
<script type="text/javascript" src="js/plugins/respond/respond.min.js"></script>
<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/plugins/jquery-ui/jquery-ui-1.8.23.custom.min.js"></script>
<!-- third party plugins  -->
<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap-carousel.js"></script>
<script type="text/javascript" src="js/plugins/easing/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/plugins/pretty-photo/js/jquery.prettyPhoto.js"></script>
<script type="text/javascript" src="js/plugins/hoverdir/jquery.hoverdir.js"></script>
<!-- jQuery KenBurn Slider  -->
<script type="text/javascript" src="js/plugins/rs-plugin/js/jquery.themepunch.plugins.min.js"></script>
<script type="text/javascript" src="js/plugins/rs-plugin/js/jquery.themepunch.revolution.min.js"></script>
<!-- Custom  -->
<script type="text/javascript" src="js/custom.js"></script>
<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', UA]);
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
</script>
</body>
</html>
