<!ENTITY productversion "0.1">
<!ENTITY productname "<application>River Container</application>">
<!ENTITY productnamecomplete "<application>Apache River Container</application>">
<!ENTITY companyname "The Apache Software Foundation">
<!ENTITY departmentname "##TODO##">
<!ENTITY companyaddress1 "<street>##TODO##</street>">
<!ENTITY companyaddress2 "<country>##TODO##</country>-<postcode>##TODO##</postcode> <city>##TODO##</city>">
<!ENTITY copyrightyear "<year>2013</year>">
<!ENTITY legalnotice "
			<para>
                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
                &quot;License&quot;); you may not use this file except in compliance
                with the License.  You may obtain a copy of the License at
            </para>
            <para role='center'>    
                  http://www.apache.org/licenses/LICENSE-2.0
            </para>
            <para>    
                Unless required by applicable law or agreed to in writing,
                software distributed under the License is distributed on an
                &quot;AS IS&quot; 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.
			</para>">



			