-- LA140053.A 
--
--                             Grant of Unlimited Rights
--
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained 
--     unlimited rights in the software and documentation contained herein.
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making 
--     this public release, the Government intends to confer upon all 
--     recipients unlimited rights  equal to those held by the Government.  
--     These rights include rights to use, duplicate, release or disclose the 
--     released technical data and computer software in whole or in part, in 
--     any manner and for any purpose whatsoever, and to have or permit others 
--     to do so.
--
--                                    DISCLAIMER
--
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED 
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE 
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--*
--
-- OBJECTIVE:
--     See LA140052.AM.
--
-- TEST DESCRIPTION:
--     See LA140052.AM.
--
-- SPECIAL REQUIREMENTS:
--     See LA140052.AM.
--
-- TEST FILES:
--      This test consists of the following files:
--         LA140050.A
--         LA140051.A
--         LA140052.AM
--      -> LA140053.A
--
-- PASS/FAIL CRITERIA:
--     See LA140052.AM.
--
-- CHANGE HISTORY:
--     01 MAY 95   ACVC 1.12   LA5008I baseline version
--     09 MAY 95   SAIC        Initial version
--     07 DEC 96   SAIC        Modified prologue to reflect new test
--                             file organization.
--
--!

with LA14005_0;
generic 
     with package types is new LA14005_0 (<>);
package LA14005_1 is
     TC_constant_flt : constant 
             types.gen_flt := types.gen_flt(types.min);  --changed line
     function return_flt return types.gen_flt;
end LA14005_1;
