blob: 8f34fabc5a53eed6276efcf92e3fbadb59ba2383 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Authorization (Apache Juneau 9.0-B1)</title>
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Authorization (Apache Juneau 9.0-B1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/juneau/http/header/Allow.html" title="class in org.apache.juneau.http.header"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/juneau/http/header/BasicBooleanHeader.html" title="class in org.apache.juneau.http.header"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/juneau/http/header/Authorization.html" target="_top">Frames</a></li>
<li><a href="Authorization.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.juneau.http.header</div>
<h2 title="Class Authorization" class="title">Class Authorization</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/juneau/http/header/BasicHeader.html" title="class in org.apache.juneau.http.header">org.apache.juneau.http.header.BasicHeader</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html" title="class in org.apache.juneau.http.header">org.apache.juneau.http.header.BasicStringHeader</a></li>
<li>
<ul class="inheritance">
<li>org.apache.juneau.http.header.Authorization</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>, org.apache.http.Header, org.apache.http.NameValuePair</dd>
</dl>
<hr>
<br>
<pre><a href="../../../../../org/apache/juneau/http/annotation/Header.html" title="annotation in org.apache.juneau.http.annotation">@Header</a>(<a href="../../../../../org/apache/juneau/http/annotation/Header.html#value--">value</a>="Authorization")
public class <a href="../../../../../src-html/org/apache/juneau/http/header/Authorization.html#line.79">Authorization</a>
extends <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html" title="class in org.apache.juneau.http.header">BasicStringHeader</a></pre>
<div class="block">Represents a parsed <l>Authorization</l> HTTP request header.
<p>
Authentication credentials for HTTP authentication.
<h5 class='figure'>Example</h5>
<p class='bcode'>
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
</p>
<h5 class='topic'>RFC2616 Specification</h5>
A user agent that wishes to authenticate itself with a server--usually, but not necessarily, after receiving a 401
response--does so by including an Authorization request-header field with the request.
<p>
The Authorization field value consists of credentials containing the authentication information of the user agent for
the realm of the resource being requested.
<p class='bcode'>
Authorization = "Authorization" ":" credentials
</p>
<p>
HTTP access authentication is described in "HTTP Authentication: Basic and Digest Access Authentication".
<p>
If a request is authenticated and a realm specified, the same credentials SHOULD be valid for all other requests
within this realm (assuming that the authentication scheme itself does not require otherwise, such as credentials
that vary according to a challenge value or using synchronized clocks).
<p>
When a shared cache (see section 13.7) receives a request containing an Authorization field, it MUST NOT return the
corresponding response as a reply to any other request, unless one of the following specific exceptions holds:
<ol>
<li>If the response includes the "s-maxage" cache-control directive, the cache MAY use that response in replying
to a subsequent request.
But (if the specified maximum age has passed) a proxy cache MUST first revalidate it with the origin
server, using the request-headers from the new request to allow the origin server to authenticate the new
request.
(This is the defined behavior for s-maxage.)
If the response includes "s-maxage=0", the proxy MUST always revalidate it before re-using it.
<li>If the response includes the "must-revalidate" cache-control directive, the cache MAY use that response in
replying to a subsequent request.
But if the response is stale, all caches MUST first revalidate it with the origin server, using the
request-headers from the new request to allow the origin server to authenticate the new request.
<li>If the response includes the "public" cache-control directive, it MAY be returned in reply to any subsequent
request.
</ol>
<ul class='seealso'>
<li class='link'><a class='doclink' href='../../../../../overview-summary.html#juneau-marshall.jm.HttpParts'>Overview &gt; juneau-marshall &gt; HTTP Parts</a>
<li class='extlink'><a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616.html'>Hypertext Transfer Protocol -- HTTP/1.1</a>
<li class='extlink'><a class='doclink' target='_blank' href='https://github.com/apache/juneau/blob/master/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/http/header/Authorization.java'>Source</a>
</ul></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/http/header/Authorization.html#Authorization-java.lang.String-">Authorization</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/http/header/Authorization.html#Authorization-java.util.function.Supplier-">Authorization</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;value)</code>
<div class="block">Constructor with delayed value.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/juneau/http/header/Authorization.html" title="class in org.apache.juneau.http.header">Authorization</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/http/header/Authorization.html#of-java.lang.String-">of</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
<div class="block">Static creator.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/juneau/http/header/Authorization.html" title="class in org.apache.juneau.http.header">Authorization</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/http/header/Authorization.html#of-java.util.function.Supplier-">of</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;value)</code>
<div class="block">Static creator with delayed value.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.juneau.http.header.BasicStringHeader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.juneau.http.header.<a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html" title="class in org.apache.juneau.http.header">BasicStringHeader</a></h3>
<code><a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#assertString--">assertString</a>, <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#asString--">asString</a>, <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#getValue--">getValue</a>, <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#of-java.lang.String-java.lang.String-">of</a>, <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#of-java.lang.String-java.util.function.Supplier-">of</a>, <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#ofPair-java.lang.String-">ofPair</a>, <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#orElse-java.lang.String-">orElse</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.juneau.http.header.BasicHeader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.juneau.http.header.<a href="../../../../../org/apache/juneau/http/header/BasicHeader.html" title="class in org.apache.juneau.http.header">BasicHeader</a></h3>
<code><a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#assertName--">assertName</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#assertStringValue--">assertStringValue</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#equalsIgnoreCase-java.lang.String-">equalsIgnoreCase</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#get--">get</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#getElements--">getElements</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#getName--">getName</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#isNotEmpty--">isNotEmpty</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#isPresent--">isPresent</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#of-org.apache.http.NameValuePair-">of</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#of-java.lang.String-java.lang.Object-">of</a>, <a href="../../../../../org/apache/juneau/http/header/BasicHeader.html#toString--">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="Authorization-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Authorization</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/juneau/http/header/Authorization.html#line.126">Authorization</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
<div class="block">Constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - The header value.
<br>Can be <jk>null</jk>.</dd>
</dl>
</li>
</ul>
<a name="Authorization-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Authorization</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/juneau/http/header/Authorization.html#line.140">Authorization</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;value)</pre>
<div class="block">Constructor with delayed value.
<p>
Header value is re-evaluated on each call to <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#getValue--"><code>BasicStringHeader.getValue()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - The supplier of the header value.
<br>Can be <jk>null</jk>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="of-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>of</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/juneau/http/header/Authorization.html" title="class in org.apache.juneau.http.header">Authorization</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/http/header/Authorization.html#line.96">of</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
<div class="block">Static creator.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - The header value.
<br>Can be <jk>null</jk>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new header bean, or <jk>null</jk> if the value is <jk>null</jk>.</dd>
</dl>
</li>
</ul>
<a name="of-java.util.function.Supplier-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>of</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/juneau/http/header/Authorization.html" title="class in org.apache.juneau.http.header">Authorization</a>&nbsp;<a href="../../../../../src-html/org/apache/juneau/http/header/Authorization.html#line.111">of</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html?is-external=true" title="class or interface in java.util.function">Supplier</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;value)</pre>
<div class="block">Static creator with delayed value.
<p>
Header value is re-evaluated on each call to <a href="../../../../../org/apache/juneau/http/header/BasicStringHeader.html#getValue--"><code>BasicStringHeader.getValue()</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - The supplier of the header value.
<br>Can be <jk>null</jk>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new header bean, or <jk>null</jk> if the value is <jk>null</jk>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/juneau/http/header/Allow.html" title="class in org.apache.juneau.http.header"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/juneau/http/header/BasicBooleanHeader.html" title="class in org.apache.juneau.http.header"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/juneau/http/header/Authorization.html" target="_top">Frames</a></li>
<li><a href="Authorization.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2016&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>