File: AA-6-4-1.html

package info (click to toggle)
ada-reference-manual 20021112web-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny, sarge
  • size: 18,652 kB
  • ctags: 8,921
  • sloc: makefile: 52; sh: 20
file content (262 lines) | stat: -rw-r--r-- 18,886 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
    <TITLE>AARM95 - Parameter Associations</TITLE>
    <META NAME="Author" CONTENT="JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor">
    <META NAME="GENERATOR" CONTENT="Arm_Form.Exe, Ada Reference Manual generator">
    <STYLE type="text/css">
    DIV.paranum {position: absolute; font-family: Arial, Helvetica, sans-serif; left: 0.5 em; top: auto}
    TT {font-family: "Courier New", monospace}
    DT {display: compact}
    DIV.Normal {font-family: "Times New Roman", Times, serif; margin-bottom: 0.6em}
    DIV.Wide {font-family: "Times New Roman", Times, serif; margin-top: 0.6em; margin-bottom: 0.6em}
    DIV.Annotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
    DIV.WideAnnotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0.6em; margin-bottom: 0.6em}
    DIV.Index {font-family: "Times New Roman", Times, serif}
    DIV.SyntaxSummary {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
    DIV.Notes {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.6em}
    DIV.NotesHeader {font-family: "Times New Roman", Times, serif; margin-left: 2.0em}
    DIV.SyntaxIndented {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
    DIV.Indented {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-bottom: 0.6em}
    DIV.CodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
    DIV.SmallIndented {font-family: "Times New Roman", Times, serif; margin-left:  10.0em; margin-bottom: 0.6em}
    DIV.SmallCodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-bottom: 0.6em}
    DIV.Examples {font-family: "Courier New", monospace; margin-left: 2.0em; margin-bottom: 0.6em}
    DIV.SmallExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 7.5em; margin-bottom: 0.6em}
    DIV.IndentedExamples {font-family: "Courier New", monospace; margin-left: 8.0em; margin-bottom: 0.6em}
    DIV.SmallIndentedExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left:  15.0em; margin-bottom: 0.6em}
    UL.Bulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.SmallBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.NestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.SmallNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.IndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.CodeIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.CodeIndentedNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.SyntaxIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.NotesBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
    UL.NotesNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
    DL.Hanging {font-family: "Times New Roman", Times, serif; margin-top: 0em; margin-bottom: 0.6em}
    DD.Hanging {margin-left: 6.0em}
    DL.IndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
    DD.IndentedHanging {margin-left: 2.0em}
    DL.HangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
    DD.HangingInBulleted {margin-left: 4.0em}
    DL.SmallHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
    DD.SmallHanging {margin-left: 7.5em}
    DL.SmallIndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-top: 0em; margin-bottom: 0.6em}
    DD.SmallIndentedHanging {margin-left: 2.0em}
    DL.SmallHangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
    DD.SmallHangingInBulleted {margin-left: 5.0em}
    DL.Enumerated {font-family: "Times New Roman", Times, serif; margin-right: 0.0em; margin-top: 0em; margin-bottom: 0.5em}
    DD.Enumerated {margin-left: 2.0em}
    DL.SmallEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
    DD.SmallEnumerated {margin-left: 2.5em}
    DL.NestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
    DL.SmallNestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
    </STYLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFF0" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<P><A HREF="AA-TOC.html">Contents</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-0-29.html">Index</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-6-4.html">Previous</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-6-5.html">Next</A></P>
<HR>
<H1> 6.4.1 Parameter Associations</H1>
<DIV Class="Paranum"><FONT SIZE=-2>1</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;[<A NAME="I3147"></A> A parameter association
defines the association between an actual parameter and a formal parameter.]
</DIV>

<H4 ALIGN=CENTER>Language Design Principles</H4>
<DIV Class="Paranum"><FONT SIZE=-2>1.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>The parameter passing rules for
<B>out</B> parameters are designed to ensure that the parts of a type
that have implicit initial values (see <A HREF="AA-3-3-1.html">3.3.1</A>)
don't become ``de-initialized'' by being passed as an <B>out</B> parameter.
</FONT></DIV>

<H4 ALIGN=CENTER>Name Resolution Rules</H4>
<DIV Class="Paranum"><FONT SIZE=-2>2</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;The <I>formal_parameter_</I><FONT FACE="Arial, Helvetica">selector_name</FONT>
of a <FONT FACE="Arial, Helvetica">parameter_association</FONT> shall
resolve to denote a <FONT FACE="Arial, Helvetica">parameter_specification</FONT>
of the view being called.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;<A NAME="I3148"></A>The <I>actual parameter</I>
is either the <FONT FACE="Arial, Helvetica">explicit_actual_parameter</FONT>
given in a <FONT FACE="Arial, Helvetica">parameter_association</FONT>
for a given formal parameter, or the corresponding <FONT FACE="Arial, Helvetica">default_expression</FONT>
if no <FONT FACE="Arial, Helvetica">parameter_association</FONT> is given
for the formal parameter. <A NAME="I3149"></A>The expected type for an
actual parameter is the type of the corresponding formal parameter. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>To be honest: </B>The corresponding
<FONT FACE="Arial, Helvetica">default_expression</FONT> is the one of
the corresponding formal parameter in the profile of the view denoted
by the <FONT FACE="Arial, Helvetica">name</FONT> or <FONT FACE="Arial, Helvetica">prefix</FONT>
of the call. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>4</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;If the mode is <B>in</B>, the actual is interpreted
as an <FONT FACE="Arial, Helvetica">expression</FONT>; otherwise, the
actual is interpreted only as a <FONT FACE="Arial, Helvetica">name</FONT>,
if possible. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>4.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>This formally
resolves the ambiguity present in the syntax rule for <FONT FACE="Arial, Helvetica">explicit_actual_parameter</FONT>.
Note that we don't actually require that the actual be a <FONT FACE="Arial, Helvetica">name</FONT>
if the mode is not <B>in</B>; we do that below. </FONT></DIV>

<H4 ALIGN=CENTER>Legality Rules</H4>
<DIV Class="Paranum"><FONT SIZE=-2>5</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;If the mode is <B>in out</B> or <B>out</B>, the
actual shall be a <FONT FACE="Arial, Helvetica">name</FONT> that denotes
a variable. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>5.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B>We no longer
need ``or a <FONT FACE="Arial, Helvetica">type_conversion</FONT> whose
argument is the <FONT FACE="Arial, Helvetica">name</FONT> of a variable,''
because a <FONT FACE="Arial, Helvetica">type_conversion</FONT> is now
a <FONT FACE="Arial, Helvetica">name</FONT>, and a <FONT FACE="Arial, Helvetica">type_conversion</FONT>
of a variable is a variable. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>5.b</FONT></DIV>
<DIV Class="Annotations" Style="margin-bottom: 0.4em"><FONT SIZE=-1><B>Reason:
</B>The requirement that the actual be a (variable) <FONT FACE="Arial, Helvetica">name</FONT>
is not an overload resolution rule, since we don't want the difference
between <FONT FACE="Arial, Helvetica">expression</FONT> and <FONT FACE="Arial, Helvetica">name</FONT>
to be used to resolve overloading. For example: </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>5.c</FONT></DIV>
<DIV Class="SmallExamples"><TT>procedure&nbsp;Print(X&nbsp;:&nbsp;<B>in</B>&nbsp;Integer;&nbsp;Y&nbsp;:&nbsp;<B>in</B>&nbsp;Boolean&nbsp;:=&nbsp;True);<BR>
procedure&nbsp;Print(Z&nbsp;:&nbsp;<B>in&nbsp;out</B>&nbsp;Integer);<BR>
.&nbsp;.&nbsp;.<BR>
Print(3);&nbsp;--<I>&nbsp;Ambiguous!</I><BR>
&nbsp;&nbsp;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>5.d</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>The above call to Print is ambiguous
even though the call is not compatible with the second Print which requires
an actual that is a (variable) <FONT FACE="Arial, Helvetica">name</FONT>
(``3'' is an <FONT FACE="Arial, Helvetica">expression</FONT>, not a <FONT FACE="Arial, Helvetica">name</FONT>).
This requirement is a legality rule, so overload resolution fails before
it is considered, meaning that the call is ambiguous. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>6</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;The type of the actual parameter associated with
an access parameter shall be convertible (see <A HREF="AA-4-6.html">4.6</A>)
to its anonymous access type. <A NAME="I3150"></A></DIV>

<H4 ALIGN=CENTER>Dynamic Semantics</H4>
<DIV Class="Paranum"><FONT SIZE=-2>7</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em">&nbsp;&nbsp;&nbsp;<A NAME="I3151"></A>For
the evaluation of a <FONT FACE="Arial, Helvetica">parameter_association</FONT>:
</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>The actual parameter is first evaluated.</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>9</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>For an access parameter, the <FONT FACE="Arial, Helvetica">access_definition</FONT>
is elaborated, which creates the anonymous access type.</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>10</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>For a parameter [(of any mode)] that is passed by reference
(see <A HREF="AA-6-2.html">6.2</A>), a view conversion of the actual
parameter to the nominal subtype of the formal parameter is evaluated,
and the formal parameter denotes that conversion. <A NAME="I3152"></A></LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>10.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B>We are always
allowing sliding, even for <B>[in] out</B> by-reference parameters. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>11</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC><A NAME="I3153"></A>For an <B>in</B> or <B>in out</B> parameter
that is passed by copy (see <A HREF="AA-6-2.html">6.2</A>), the formal
parameter object is created, and the value of the actual parameter is
converted to the nominal subtype of the formal parameter and assigned
to the formal. <A NAME="I3154"></A></LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>11.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>The conversion
mentioned here is a value conversion. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>12</FONT></DIV>
<UL Class="Bulleted" Style="margin-bottom: 0.3em"><LI TYPE=DISC>For an <B>out</B> parameter that is passed by copy, the
formal parameter object is created, and: </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>13</FONT></DIV>
<UL Class="CodeIndentedBulleted"><LI TYPE=DISC>For an access type, the formal parameter is initialized
from the value of the actual, without a constraint check; </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>13.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Reason: </B>This preserves
the Language Design Principle that an object of an access type is always
initialized with a ``reasonable'' value. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>14</FONT></DIV>
<UL Class="CodeIndentedBulleted"><LI TYPE=DISC>For a composite type with discriminants or that has implicit
initial values for any subcomponents (see <A HREF="AA-3-3-1.html">3.3.1</A>),
the behavior is as for an <B>in out</B> parameter passed by copy. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>14.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Reason: </B>This ensures that
no part of an object of such a type can become ``de-initialized'' by
being part of an <B>out</B> parameter. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>14.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>This includes
an array type whose component type is an access type, and a record type
with a component that has a <FONT FACE="Arial, Helvetica">default_expression</FONT>,
among other things. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>15</FONT></DIV>
<UL Class="CodeIndentedBulleted"><LI TYPE=DISC>For any other type, the formal parameter is uninitialized.
If composite, a view conversion of the actual parameter to the nominal
subtype of the formal is evaluated [(which might raise Constraint_Error)],
and the actual subtype of the formal is that of the view conversion.
If elementary, the actual subtype of the formal is given by its nominal
subtype. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>15.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>This case
covers scalar types, and composite types whose subcomponent's subtypes
do not have any implicit initial values. The view conversion for composite
types ensures that if the lengths don't match between an actual and a
formal array parameter, the Constraint_Error is raised before the call,
rather than after. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>16</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;<A NAME="I3155"></A><A NAME="I3156"></A>A formal
parameter of mode <B>in out</B> or <B>out</B> with discriminants is constrained
if either its nominal subtype or the actual parameter is constrained.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>17</FONT></DIV>
<DIV Class="Normal">&nbsp;&nbsp;&nbsp;&nbsp;<A NAME="I3157"></A><A NAME="I3158"></A><A NAME="I3159"></A><A NAME="I3160"></A><A NAME="I3161"></A>After
normal completion and leaving of a subprogram, for each <B>in out</B>
or <B>out</B> parameter that is passed by copy, the value of the formal
parameter is converted to the subtype of the variable given as the actual
parameter and assigned to it. <A NAME="I3162"></A>These conversions and
assignments occur in an arbitrary order. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>17.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>The conversions
mentioned above during parameter passing might raise Constraint_Error
-- (see <A HREF="AA-4-6.html">4.6</A>). </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>17.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>If any conversion
or assignment as part of parameter passing propagates an exception, the
exception is raised at the place of the subprogram call; that is, it
cannot be handled inside the <FONT FACE="Arial, Helvetica">subprogram_body</FONT>.
</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>17.c</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Proof: </B>Since these checks
happen before or after executing the <FONT FACE="Arial, Helvetica">subprogram_body</FONT>,
the execution of the <FONT FACE="Arial, Helvetica">subprogram_body</FONT>
does not dynamically enclose them, so it can't handle the exceptions.
</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>17.d</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B>The variable
we're talking about is the one denoted by the <I>variable_</I><FONT FACE="Arial, Helvetica">name</FONT>
given as the <FONT FACE="Arial, Helvetica">explicit_actual_parameter</FONT>.
If this <I>variable_</I><FONT FACE="Arial, Helvetica">name</FONT> is
a <FONT FACE="Arial, Helvetica">type_conversion</FONT>, then the rules
in <A HREF="AA-4-6.html">4.6</A> for assigning to a view conversion apply.
That is, if X is of subtype S1, and the actual is S2(X), the above-mentioned
conversion will convert to S2, and the one mentioned in <A HREF="AA-4-6.html">4.6</A>
will convert to S1. </FONT></DIV>

<H4 ALIGN=CENTER>Extensions to Ada 83</H4>
<DIV Class="Paranum"><FONT SIZE=-2>17.e</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><A NAME="I3163"></A>In Ada 95,
a program can rely on the fact that passing an object as an <B>out</B>
parameter does not ``de-initialize'' any parts of the object whose subtypes
have implicit initial values. (This generalizes the RM83 rule that required
copy-in for parts that were discriminants or of an access type.) </FONT></DIV>

<H4 ALIGN=CENTER>Wording Changes from Ada 83</H4>
<DIV Class="Paranum"><FONT SIZE=-2>17.f</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>We have eliminated the subclause
on Default Parameters, as it is subsumed by earlier clauses and subclauses.
</FONT></DIV>

<HR>
<P><A HREF="AA-TOC.html">Contents</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-0-29.html">Index</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-6-4.html">Previous</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-6-5.html">Next</A>&nbsp;&nbsp;&nbsp;<A HREF="AA-TTL.html">Legal</A></P>
</BODY>
</HTML>