diff --git a/apidocs/2.1.6/META-INF/MANIFEST.MF b/apidocs/2.1.6/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0b69e4e
--- /dev/null
+++ b/apidocs/2.1.6/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Created-By: Apache Maven 3.6.0
+Built-By: default
+Build-Jdk: 12
+
diff --git a/apidocs/2.1.6/allclasses-index.html b/apidocs/2.1.6/allclasses-index.html
new file mode 100644
index 0000000..90e837e
--- /dev/null
+++ b/apidocs/2.1.6/allclasses-index.html
@@ -0,0 +1,1015 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>All Classes (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Classes (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":2,"i1":2,"i2":32,"i3":1,"i4":1,"i5":8,"i6":32,"i7":2,"i8":1,"i9":2,"i10":8,"i11":1,"i12":1,"i13":1,"i14":1,"i15":1,"i16":1,"i17":1,"i18":1,"i19":1,"i20":32,"i21":32,"i22":1,"i23":1,"i24":1,"i25":1,"i26":32,"i27":1,"i28":2,"i29":32,"i30":32,"i31":32,"i32":1,"i33":32,"i34":2,"i35":2,"i36":1,"i37":1,"i38":1,"i39":8,"i40":2,"i41":32,"i42":2,"i43":2,"i44":32,"i45":32,"i46":32,"i47":1,"i48":32,"i49":1,"i50":1,"i51":8,"i52":1,"i53":1,"i54":1,"i55":2,"i56":1,"i57":2,"i58":2,"i59":32,"i60":2,"i61":1,"i62":1,"i63":2,"i64":1,"i65":32,"i66":2,"i67":8,"i68":8,"i69":8,"i70":8,"i71":8,"i72":8,"i73":32,"i74":1,"i75":1,"i76":1,"i77":32,"i78":1,"i79":32,"i80":32,"i81":32,"i82":1,"i83":32,"i84":32,"i85":2,"i86":8,"i87":32,"i88":32,"i89":1,"i90":32,"i91":32,"i92":1,"i93":1,"i94":8,"i95":1,"i96":1,"i97":1,"i98":2,"i99":2,"i100":4,"i101":4,"i102":1,"i103":8,"i104":2,"i105":1,"i106":4,"i107":1,"i108":1,"i109":1,"i110":8,"i111":8,"i112":1,"i113":1,"i114":1,"i115":1,"i116":1,"i117":2,"i118":1,"i119":32,"i120":1,"i121":1,"i122":2,"i123":8,"i124":1,"i125":2,"i126":2,"i127":8,"i128":1,"i129":1,"i130":1};
+var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],4:["t3","Enum Summary"],8:["t4","Exception Summary"],32:["t6","Annotation Types Summary"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
+</div>
+<div class="allClassesContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="typeSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Classes</button><button role="tab" aria-selected="false" aria-controls="typeSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Interface Summary</button><button role="tab" aria-selected="false" aria-controls="typeSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Class Summary</button><button role="tab" aria-selected="false" aria-controls="typeSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Enum Summary</button><button role="tab" aria-selected="false" aria-controls="typeSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Exception Summary</button><button role="tab" aria-selected="false" aria-controls="typeSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t6" class="tableTab" onclick="show(32);">Annotation Types Summary</button></div>
+<div id="typeSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a>&lt;<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Abstract skeleton implementation of a <a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core">Application</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the components of an application and supplies additional
+ meta-data.</div>
+</th>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><a href="javax/ws/rs/ApplicationPath.html" title="annotation in javax.ws.rs">ApplicationPath</a></td>
+<th class="colLast" scope="row">
+<div class="block">Identifies the application path that serves as the base URI
+ for all resource URIs provided by <a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></td>
+<th class="colLast" scope="row">
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</th>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable and asynchronous response that provides means for asynchronous server side
+ response processing.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating a <a href="javax/ws/rs/core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><a href="javax/ws/rs/BeanParam.html" title="annotation in javax.ws.rs">BeanParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">The annotation that may be used to inject a custom "parameter aggregator" value object
+ into a resource class field, property or resource method parameter.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></td>
+<th class="colLast" scope="row">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</th>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client is the main entry point to the fluent API used to build and execute client
+ requests in order to consume responses returned.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Main entry point to the client API used to bootstrap <a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>
+ instances.</div>
+</th>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A base runtime application exception indicating a client request error
+ (HTTP <code>4xx</code> status codes).</div>
+</th>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client request filter context.</div>
+</th>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><a href="javax/ws/rs/client/ClientRequestFilter.html" title="interface in javax.ws.rs.client">ClientRequestFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by client request filters.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client response filter context.</div>
+</th>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><a href="javax/ws/rs/client/ClientResponseFilter.html" title="interface in javax.ws.rs.client">ClientResponseFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by client response filters.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><a href="javax/ws/rs/container/CompletionCallback.html" title="interface in javax.ws.rs.container">CompletionCallback</a></td>
+<th class="colLast" scope="row">
+<div class="block">A request processing callback that receives request processing completion events.</div>
+</th>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></td>
+<th class="colLast" scope="row">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="javax/ws/rs/core/Configurable.html" title="type parameter in Configurable">C</a> extends <a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Represents a client or server-side configurable context.</div>
+</th>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></td>
+<th class="colLast" scope="row">
+<div class="block">A configuration state associated with a <a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a> context.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><a href="javax/ws/rs/container/ConnectionCallback.html" title="interface in javax.ws.rs.container">ConnectionCallback</a></td>
+<th class="colLast" scope="row">
+<div class="block">Asynchronous request processing lifecycle callback that receives connection
+ related <a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container"><code>asynchronous response</code></a> lifecycle events.</div>
+</th>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><a href="javax/ws/rs/ConstrainedTo.html" title="annotation in javax.ws.rs">ConstrainedTo</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates the run-time context in which an annotated provider
+ is applicable.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><a href="javax/ws/rs/Consumes.html" title="annotation in javax.ws.rs">Consumes</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the media types that the methods of a resource class or
+ <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.</div>
+</th>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Container request filter context.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container">ContainerRequestFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by container request filters.</div>
+</th>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Container response filter context.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><a href="javax/ws/rs/container/ContainerResponseFilter.html" title="interface in javax.ws.rs.container">ContainerResponseFilter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An extension interface implemented by container response filters.</div>
+</th>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><a href="javax/ws/rs/core/Context.html" title="annotation in javax.ws.rs.core">Context</a></td>
+<th class="colLast" scope="row">
+<div class="block">This annotation is used to inject information into a class
+ field, bean property or method parameter.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><a href="javax/ws/rs/ext/ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a>&lt;<a href="javax/ws/rs/ext/ContextResolver.html" title="type parameter in ContextResolver">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that supplies context information to resource
+ classes and other providers.</div>
+</th>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i29">
+<td class="colFirst"><a href="javax/ws/rs/CookieParam.html" title="annotation in javax.ws.rs">CookieParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</th>
+</tr>
+<tr class="altColor" id="i30">
+<td class="colFirst"><a href="javax/ws/rs/DefaultValue.html" title="annotation in javax.ws.rs">DefaultValue</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the default value of request meta-data that is bound using one of the
+ following annotations:
+ <a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>,
+ <a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>,
+ <a href="javax/ws/rs/CookieParam.html" title="annotation in javax.ws.rs"><code>CookieParam</code></a>,
+ <a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a>,
+ or <a href="javax/ws/rs/HeaderParam.html" title="annotation in javax.ws.rs"><code>HeaderParam</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i31">
+<td class="colFirst"><a href="javax/ws/rs/DELETE.html" title="annotation in javax.ws.rs">DELETE</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</th>
+</tr>
+<tr class="altColor" id="i32">
+<td class="colFirst"><a href="javax/ws/rs/container/DynamicFeature.html" title="interface in javax.ws.rs.container">DynamicFeature</a></td>
+<th class="colLast" scope="row">
+<div class="block">A meta-provider for dynamic registration of <i>post-matching</i> providers
+ during an application setup at deployment time.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i33">
+<td class="colFirst"><a href="javax/ws/rs/Encoded.html" title="annotation in javax.ws.rs">Encoded</a></td>
+<th class="colLast" scope="row">
+<div class="block">Disables automatic decoding of parameter values bound using <a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, <a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a> or <a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i34">
+<td class="colFirst"><a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="javax/ws/rs/client/Entity.html" title="type parameter in Entity">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i35">
+<td class="colFirst"><a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></td>
+<th class="colLast" scope="row">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+</th>
+</tr>
+<tr class="altColor" id="i36">
+<td class="colFirst"><a href="javax/ws/rs/ext/ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a>&lt;<a href="javax/ws/rs/ext/ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that maps Java exceptions to <a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i37">
+<td class="colFirst"><a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core">Feature</a></td>
+<th class="colLast" scope="row">
+<div class="block">A feature extension contract.</div>
+</th>
+</tr>
+<tr class="altColor" id="i38">
+<td class="colFirst"><a href="javax/ws/rs/core/FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">A configurable context passed to <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="javax/ws/rs/container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i39">
+<td class="colFirst"><a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that an access to a resource requested by
+ a client has been <a href="javax/ws/rs/core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a>
+ by the server.</div>
+</th>
+</tr>
+<tr class="altColor" id="i40">
+<td class="colFirst"><a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core">Form</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents the the HTML form data request entity encoded using the
+ <code>"application/x-www-form-urlencoded"</code> content type.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i41">
+<td class="colFirst"><a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs">FormParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body
+ to a resource method parameter.</div>
+</th>
+</tr>
+<tr class="altColor" id="i42">
+<td class="colFirst"><a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a>&lt;<a href="javax/ws/rs/core/GenericEntity.html" title="type parameter in GenericEntity">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Represents a message entity of a generic type <code>T</code>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i43">
+<td class="colFirst"><a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;<a href="javax/ws/rs/core/GenericType.html" title="type parameter in GenericType">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i44">
+<td class="colFirst"><a href="javax/ws/rs/GET.html" title="annotation in javax.ws.rs">GET</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i45">
+<td class="colFirst"><a href="javax/ws/rs/HEAD.html" title="annotation in javax.ws.rs">HEAD</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</th>
+</tr>
+<tr class="altColor" id="i46">
+<td class="colFirst"><a href="javax/ws/rs/HeaderParam.html" title="annotation in javax.ws.rs">HeaderParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i47">
+<td class="colFirst"><a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface that provides access to HTTP header information.</div>
+</th>
+</tr>
+<tr class="altColor" id="i48">
+<td class="colFirst"><a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></td>
+<th class="colLast" scope="row">
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i49">
+<td class="colFirst"><a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Inbound Server-sent event.</div>
+</th>
+</tr>
+<tr class="altColor" id="i50">
+<td class="colFirst"><a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context shared by message body interceptors that can be used to wrap
+ calls to <a href="javax/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and
+ <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i51">
+<td class="colFirst"><a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating an <a href="javax/ws/rs/core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server error</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i52">
+<td class="colFirst"><a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></td>
+<th class="colLast" scope="row">
+<div class="block">A client request invocation.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i53">
+<td class="colFirst"><a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A client request invocation builder.</div>
+</th>
+</tr>
+<tr class="altColor" id="i54">
+<td class="colFirst"><a href="javax/ws/rs/client/InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;<a href="javax/ws/rs/client/InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Callback that can be implemented to receive the asynchronous processing
+ events from the invocation processing.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i55">
+<td class="colFirst"><a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></td>
+<th class="colLast" scope="row">
+<div class="block">Class representing hypermedia links.</div>
+</th>
+</tr>
+<tr class="altColor" id="i56">
+<td class="colFirst"><a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">Builder class for hypermedia links.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i57">
+<td class="colFirst"><a href="javax/ws/rs/core/Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Link.JaxbAdapter</a></td>
+<th class="colLast" scope="row">
+<div class="block">An implementation of JAXB <a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><code>XmlAdapter</code></a>
+ that maps the <a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> type to a value that can be
+ marshalled and unmarshalled by JAXB.</div>
+</th>
+</tr>
+<tr class="altColor" id="i58">
+<td class="colFirst"><a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></td>
+<th class="colLast" scope="row">
+<div class="block">Value type for <a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i59">
+<td class="colFirst"><a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs">MatrixParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</th>
+</tr>
+<tr class="altColor" id="i60">
+<td class="colFirst"><a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></td>
+<th class="colLast" scope="row">
+<div class="block">An abstraction for a media type.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i61">
+<td class="colFirst"><a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a>&lt;<a href="javax/ws/rs/ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that supports the conversion of a stream to a
+ Java type.</div>
+</th>
+</tr>
+<tr class="altColor" id="i62">
+<td class="colFirst"><a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a>&lt;<a href="javax/ws/rs/ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider that supports the conversion of a Java type to a
+ stream.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i63">
+<td class="colFirst"><a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a>&lt;<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A hash table based implementation of <a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</th>
+</tr>
+<tr class="altColor" id="i64">
+<td class="colFirst"><a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">A map of key-values pairs.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i65">
+<td class="colFirst"><a href="javax/ws/rs/NameBinding.html" title="annotation in javax.ws.rs">NameBinding</a></td>
+<th class="colLast" scope="row">
+<div class="block">Meta-annotation used to create name binding annotations for filters
+ and interceptors.</div>
+</th>
+</tr>
+<tr class="altColor" id="i66">
+<td class="colFirst"><a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></td>
+<th class="colLast" scope="row">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i67">
+<td class="colFirst"><a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core">NoContentException</a></td>
+<th class="colLast" scope="row">
+<div class="block">An I/O exception thrown by <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> implementations
+ when reading a zero-length message content to indicate that the message body reader
+ is not able to produce an instance representing an zero-length message content.</div>
+</th>
+</tr>
+<tr class="altColor" id="i68">
+<td class="colFirst"><a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that a client request is
+ <a href="javax/ws/rs/core/Response.Status.html#NOT_ACCEPTABLE"><code>not acceptable</code></a>
+ by the server.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i69">
+<td class="colFirst"><a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="javax/ws/rs/core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i70">
+<td class="colFirst"><a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following
+ scenarios:
+ 
+ 
+ a client did not send the required authorization credentials to access the requested resource,
+ i.e.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i71">
+<td class="colFirst"><a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating a resource requested by a client was
+ <a href="javax/ws/rs/core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</th>
+</tr>
+<tr class="altColor" id="i72">
+<td class="colFirst"><a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="javax/ws/rs/core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i73">
+<td class="colFirst"><a href="javax/ws/rs/OPTIONS.html" title="annotation in javax.ws.rs">OPTIONS</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</th>
+</tr>
+<tr class="altColor" id="i74">
+<td class="colFirst"><a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i75">
+<td class="colFirst"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A builder class used for creating <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</th>
+</tr>
+<tr class="altColor" id="i76">
+<td class="colFirst"><a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a>&lt;<a href="javax/ws/rs/ext/ParamConverter.html" title="type parameter in ParamConverter">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Defines a contract for a delegate responsible for converting between a
+ <code>String</code> form of a message parameter value and the corresponding custom
+ Java type <code>T</code>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i77">
+<td class="colFirst"><a href="javax/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext">ParamConverter.Lazy</a></td>
+<th class="colLast" scope="row">
+<div class="block">Mandates that a conversion of any <a href="javax/ws/rs/DefaultValue.html" title="annotation in javax.ws.rs"><code>default value</code></a> delegated
+ to a <a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>parameter converter</code></a> annotated with <code>@Lazy</code>
+ annotation SHOULD occur only once the value is actually required (e.g.</div>
+</th>
+</tr>
+<tr class="altColor" id="i78">
+<td class="colFirst"><a href="javax/ws/rs/ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext">ParamConverterProvider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Contract for a provider of <a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> instances.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i79">
+<td class="colFirst"><a href="javax/ws/rs/PATCH.html" title="annotation in javax.ws.rs">PATCH</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</th>
+</tr>
+<tr class="altColor" id="i80">
+<td class="colFirst"><a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs">Path</a></td>
+<th class="colLast" scope="row">
+<div class="block">Identifies the URI path that a resource class or class method will serve
+ requests for.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i81">
+<td class="colFirst"><a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs">PathParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value of a URI template parameter or a path segment
+ containing the template parameter to a resource method parameter, resource
+ class field, or resource class
+ bean property.</div>
+</th>
+</tr>
+<tr class="altColor" id="i82">
+<td class="colFirst"><a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a></td>
+<th class="colLast" scope="row">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i83">
+<td class="colFirst"><a href="javax/ws/rs/POST.html" title="annotation in javax.ws.rs">POST</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</th>
+</tr>
+<tr class="altColor" id="i84">
+<td class="colFirst"><a href="javax/ws/rs/container/PreMatching.html" title="annotation in javax.ws.rs.container">PreMatching</a></td>
+<th class="colLast" scope="row">
+<div class="block">Global binding annotation that can be applied to a <a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>container request filter</code></a> to indicate that such filter should be applied globally
+ on all resources in the application before the actual resource matching occurs.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i85">
+<td class="colFirst"><a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></td>
+<th class="colLast" scope="row">
+<div class="block">A collection of built-in priority constants for the components that are supposed to be
+ ordered based on their <code>javax.annotation.Priority</code> class-level annotation value when used
+ or applied by the runtime.</div>
+</th>
+</tr>
+<tr class="altColor" id="i86">
+<td class="colFirst"><a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A base runtime processing exception.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i87">
+<td class="colFirst"><a href="javax/ws/rs/Produces.html" title="annotation in javax.ws.rs">Produces</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the media type(s) that the methods of a resource class or
+ <a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> can produce.</div>
+</th>
+</tr>
+<tr class="altColor" id="i88">
+<td class="colFirst"><a href="javax/ws/rs/ext/Provider.html" title="annotation in javax.ws.rs.ext">Provider</a></td>
+<th class="colLast" scope="row">
+<div class="block">Marks an implementation of an extension interface that should be discoverable
+ by the runtime during a provider scanning phase.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i89">
+<td class="colFirst"><a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext">Providers</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+</th>
+</tr>
+<tr class="altColor" id="i90">
+<td class="colFirst"><a href="javax/ws/rs/PUT.html" title="annotation in javax.ws.rs">PUT</a></td>
+<th class="colLast" scope="row">
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i91">
+<td class="colFirst"><a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs">QueryParam</a></td>
+<th class="colLast" scope="row">
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</th>
+</tr>
+<tr class="altColor" id="i92">
+<td class="colFirst"><a href="javax/ws/rs/ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext">ReaderInterceptor</a></td>
+<th class="colLast" scope="row">
+<div class="block">Interface for message body reader interceptors that wrap around calls
+ to <a href="javax/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i93">
+<td class="colFirst"><a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context class used by <a href="javax/ws/rs/ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>
+ to intercept calls to (@link javax.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</th>
+</tr>
+<tr class="altColor" id="i94">
+<td class="colFirst"><a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime application exception indicating a request redirection
+ (HTTP <code>3xx</code> status codes).</div>
+</th>
+</tr>
+<tr class="rowColor" id="i95">
+<td class="colFirst"><a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable helper for request processing, all methods throw an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the scope of a request
+ (e.g.</div>
+</th>
+</tr>
+<tr class="altColor" id="i96">
+<td class="colFirst"><a href="javax/ws/rs/container/ResourceContext.html" title="interface in javax.ws.rs.container">ResourceContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">The resource context provides access to instances of resource classes.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i97">
+<td class="colFirst"><a href="javax/ws/rs/container/ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable class to access the resource class and resource method
+ matched by the current request.</div>
+</th>
+</tr>
+<tr class="altColor" id="i98">
+<td class="colFirst"><a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></td>
+<th class="colLast" scope="row">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i99">
+<td class="colFirst"><a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity.</div>
+</th>
+</tr>
+<tr class="altColor" id="i100">
+<td class="colFirst"><a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></td>
+<th class="colLast" scope="row">
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i101">
+<td class="colFirst"><a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></td>
+<th class="colLast" scope="row">
+<div class="block">An enumeration representing the class of status code.</div>
+</th>
+</tr>
+<tr class="altColor" id="i102">
+<td class="colFirst"><a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Base interface for statuses used in responses.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i103">
+<td class="colFirst"><a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client-side runtime processing exception thrown to indicate that
+ response processing has failed (e.g.</div>
+</th>
+</tr>
+<tr class="altColor" id="i104">
+<td class="colFirst"><a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></td>
+<th class="colLast" scope="row">
+<div class="block">Implementations of this API provide a concrete subclass of RuntimeDelegate and
+ various API methods defer to methods of RuntimeDelegate for their
+ functionality.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i105">
+<td class="colFirst"><a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;<a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Defines the contract for a delegate that is responsible for
+ converting between the String form of a HTTP header and
+ the corresponding type <code>T</code>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i106">
+<td class="colFirst"><a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></td>
+<th class="colLast" scope="row">
+<div class="block">Enumeration of runtime types.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i107">
+<td class="colFirst"><a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="javax/ws/rs/client/RxInvoker.html" title="type parameter in RxInvoker">T</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</th>
+</tr>
+<tr class="altColor" id="i108">
+<td class="colFirst"><a href="javax/ws/rs/client/RxInvokerProvider.html" title="interface in javax.ws.rs.client">RxInvokerProvider</a>&lt;<a href="javax/ws/rs/client/RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a> extends <a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;</td>
+<th class="colLast" scope="row">
+<div class="block"><a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i109">
+<td class="colFirst"><a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface that provides access to security related
+ information.</div>
+</th>
+</tr>
+<tr class="altColor" id="i110">
+<td class="colFirst"><a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A base runtime application exception indicating a server error
+ (HTTP <code>5xx</code> status codes).</div>
+</th>
+</tr>
+<tr class="rowColor" id="i111">
+<td class="colFirst"><a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="javax/ws/rs/core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i112">
+<td class="colFirst"><a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse">Sse</a></td>
+<th class="colLast" scope="row">
+<div class="block">Server-side entry point for creating <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse"><code>SseBroadcaster</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i113">
+<td class="colFirst"><a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></td>
+<th class="colLast" scope="row">
+<div class="block">Server-Sent events broadcasting facility.</div>
+</th>
+</tr>
+<tr class="altColor" id="i114">
+<td class="colFirst"><a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></td>
+<th class="colLast" scope="row">
+<div class="block">Base Server Sent Event definition.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i115">
+<td class="colFirst"><a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></td>
+<th class="colLast" scope="row">
+<div class="block">Outbound Server-Sent Events stream.</div>
+</th>
+</tr>
+<tr class="altColor" id="i116">
+<td class="colFirst"><a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></td>
+<th class="colLast" scope="row">
+<div class="block">Client for reading and processing <a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i117">
+<td class="colFirst"><a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></td>
+<th class="colLast" scope="row">
+<div class="block"><a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</th>
+</tr>
+<tr class="altColor" id="i118">
+<td class="colFirst"><a href="javax/ws/rs/core/StreamingOutput.html" title="interface in javax.ws.rs.core">StreamingOutput</a></td>
+<th class="colLast" scope="row">
+<div class="block">A type that may be used as a resource method return value or as the entity
+ in a <a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> when the application wishes to stream the output.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i119">
+<td class="colFirst"><a href="javax/ws/rs/container/Suspended.html" title="annotation in javax.ws.rs.container">Suspended</a></td>
+<th class="colLast" scope="row">
+<div class="block">Inject a suspended <a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked
+ <a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i120">
+<td class="colFirst"><a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></td>
+<th class="colLast" scope="row">
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i121">
+<td class="colFirst"><a href="javax/ws/rs/container/TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a></td>
+<th class="colLast" scope="row">
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</th>
+</tr>
+<tr class="altColor" id="i122">
+<td class="colFirst"><a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i123">
+<td class="colFirst"><a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></td>
+<th class="colLast" scope="row">
+<div class="block">A runtime exception thrown by <a href="javax/ws/rs/core/UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when
+ a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be constructed based on the current state of the
+ builder.</div>
+</th>
+</tr>
+<tr class="altColor" id="i124">
+<td class="colFirst"><a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></td>
+<th class="colLast" scope="row">
+<div class="block">An injectable interface that provides access to application and request
+ URI information.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i125">
+<td class="colFirst"><a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></td>
+<th class="colLast" scope="row">
+<div class="block">Abstraction for a resource representation variant.</div>
+</th>
+</tr>
+<tr class="altColor" id="i126">
+<td class="colFirst"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></td>
+<th class="colLast" scope="row">
+<div class="block">A builder for a list of representation variants.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i127">
+<td class="colFirst"><a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></td>
+<th class="colLast" scope="row">
+<div class="block">Runtime exception for applications.</div>
+</th>
+</tr>
+<tr class="altColor" id="i128">
+<td class="colFirst"><a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></td>
+<th class="colLast" scope="row">
+<div class="block">A resource target identified by the resource URI.</div>
+</th>
+</tr>
+<tr class="rowColor" id="i129">
+<td class="colFirst"><a href="javax/ws/rs/ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext">WriterInterceptor</a></td>
+<th class="colLast" scope="row">
+<div class="block">Interface for message body writer interceptors that wrap around calls
+ to <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</th>
+</tr>
+<tr class="altColor" id="i130">
+<td class="colFirst"><a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></td>
+<th class="colLast" scope="row">
+<div class="block">Context class used by <a href="javax/ws/rs/ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ to intercept calls to <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</th>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/allpackages-index.html b/apidocs/2.1.6/allpackages-index.html
new file mode 100644
index 0000000..bce0383
--- /dev/null
+++ b/apidocs/2.1.6/allpackages-index.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>All Packages (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="All Packages (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
+</div>
+<div class="allPackagesContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="packagesSummary">
+<table>
+<caption><span>Package Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/constant-values.html b/apidocs/2.1.6/constant-values.html
new file mode 100644
index 0000000..3ca29ce
--- /dev/null
+++ b/apidocs/2.1.6/constant-values.html
@@ -0,0 +1,838 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Constant Field Values (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<section role="region">
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#javax.ws">javax.ws.*</a></li>
+</ul>
+</section>
+</div>
+<div class="constantValuesContainer"><a id="javax.ws">
+<!--   -->
+</a>
+<section role="region">
+<h2 title="javax.ws">javax.ws.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.DELETE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#DELETE">DELETE</a></code></th>
+<td class="colLast"><code>"DELETE"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.GET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#GET">GET</a></code></th>
+<td class="colLast"><code>"GET"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.HEAD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#HEAD">HEAD</a></code></th>
+<td class="colLast"><code>"HEAD"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.OPTIONS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#OPTIONS">OPTIONS</a></code></th>
+<td class="colLast"><code>"OPTIONS"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.PATCH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#PATCH">PATCH</a></code></th>
+<td class="colLast"><code>"PATCH"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.POST">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#POST">POST</a></code></th>
+<td class="colLast"><code>"POST"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.HttpMethod.PUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/HttpMethod.html#PUT">PUT</a></code></th>
+<td class="colLast"><code>"PUT"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.Priorities.AUTHENTICATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/Priorities.html#AUTHENTICATION">AUTHENTICATION</a></code></th>
+<td class="colLast"><code>1000</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.Priorities.AUTHORIZATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/Priorities.html#AUTHORIZATION">AUTHORIZATION</a></code></th>
+<td class="colLast"><code>2000</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.Priorities.ENTITY_CODER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/Priorities.html#ENTITY_CODER">ENTITY_CODER</a></code></th>
+<td class="colLast"><code>4000</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.Priorities.HEADER_DECORATOR">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/Priorities.html#HEADER_DECORATOR">HEADER_DECORATOR</a></code></th>
+<td class="colLast"><code>3000</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.Priorities.USER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/Priorities.html#USER">USER</a></code></th>
+<td class="colLast"><code>5000</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.client.ClientBuilder.JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/client/ClientBuilder.html#JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</a></code></th>
+<td class="colLast"><code>"javax.ws.rs.client.ClientBuilder"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.container.AsyncResponse.NO_TIMEOUT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/container/AsyncResponse.html#NO_TIMEOUT">NO_TIMEOUT</a></code></th>
+<td class="colLast"><code>0L</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.Cookie.DEFAULT_VERSION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/Cookie.html#DEFAULT_VERSION">DEFAULT_VERSION</a></code></th>
+<td class="colLast"><code>1</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.ACCEPT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT">ACCEPT</a></code></th>
+<td class="colLast"><code>"Accept"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.ACCEPT_CHARSET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT_CHARSET">ACCEPT_CHARSET</a></code></th>
+<td class="colLast"><code>"Accept-Charset"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.ACCEPT_ENCODING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT_ENCODING">ACCEPT_ENCODING</a></code></th>
+<td class="colLast"><code>"Accept-Encoding"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.ACCEPT_LANGUAGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT_LANGUAGE">ACCEPT_LANGUAGE</a></code></th>
+<td class="colLast"><code>"Accept-Language"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.ALLOW">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#ALLOW">ALLOW</a></code></th>
+<td class="colLast"><code>"Allow"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.AUTHORIZATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#AUTHORIZATION">AUTHORIZATION</a></code></th>
+<td class="colLast"><code>"Authorization"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CACHE_CONTROL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CACHE_CONTROL">CACHE_CONTROL</a></code></th>
+<td class="colLast"><code>"Cache-Control"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_DISPOSITION">CONTENT_DISPOSITION</a></code></th>
+<td class="colLast"><code>"Content-Disposition"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_ENCODING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_ENCODING">CONTENT_ENCODING</a></code></th>
+<td class="colLast"><code>"Content-Encoding"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_ID">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_ID">CONTENT_ID</a></code></th>
+<td class="colLast"><code>"Content-ID"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_LANGUAGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_LANGUAGE">CONTENT_LANGUAGE</a></code></th>
+<td class="colLast"><code>"Content-Language"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_LENGTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_LENGTH">CONTENT_LENGTH</a></code></th>
+<td class="colLast"><code>"Content-Length"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_LOCATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_LOCATION">CONTENT_LOCATION</a></code></th>
+<td class="colLast"><code>"Content-Location"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.CONTENT_TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_TYPE">CONTENT_TYPE</a></code></th>
+<td class="colLast"><code>"Content-Type"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.COOKIE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#COOKIE">COOKIE</a></code></th>
+<td class="colLast"><code>"Cookie"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.DATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#DATE">DATE</a></code></th>
+<td class="colLast"><code>"Date"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.ETAG">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#ETAG">ETAG</a></code></th>
+<td class="colLast"><code>"ETag"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.EXPIRES">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#EXPIRES">EXPIRES</a></code></th>
+<td class="colLast"><code>"Expires"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.HOST">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#HOST">HOST</a></code></th>
+<td class="colLast"><code>"Host"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.IF_MATCH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#IF_MATCH">IF_MATCH</a></code></th>
+<td class="colLast"><code>"If-Match"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.IF_MODIFIED_SINCE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#IF_MODIFIED_SINCE">IF_MODIFIED_SINCE</a></code></th>
+<td class="colLast"><code>"If-Modified-Since"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.IF_NONE_MATCH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#IF_NONE_MATCH">IF_NONE_MATCH</a></code></th>
+<td class="colLast"><code>"If-None-Match"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.IF_UNMODIFIED_SINCE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#IF_UNMODIFIED_SINCE">IF_UNMODIFIED_SINCE</a></code></th>
+<td class="colLast"><code>"If-Unmodified-Since"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.LAST_EVENT_ID_HEADER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#LAST_EVENT_ID_HEADER">LAST_EVENT_ID_HEADER</a></code></th>
+<td class="colLast"><code>"Last-Event-ID"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.LAST_MODIFIED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#LAST_MODIFIED">LAST_MODIFIED</a></code></th>
+<td class="colLast"><code>"Last-Modified"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.LINK">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#LINK">LINK</a></code></th>
+<td class="colLast"><code>"Link"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.LOCATION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#LOCATION">LOCATION</a></code></th>
+<td class="colLast"><code>"Location"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.RETRY_AFTER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#RETRY_AFTER">RETRY_AFTER</a></code></th>
+<td class="colLast"><code>"Retry-After"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.SET_COOKIE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#SET_COOKIE">SET_COOKIE</a></code></th>
+<td class="colLast"><code>"Set-Cookie"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.USER_AGENT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#USER_AGENT">USER_AGENT</a></code></th>
+<td class="colLast"><code>"User-Agent"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.VARY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#VARY">VARY</a></code></th>
+<td class="colLast"><code>"Vary"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.HttpHeaders.WWW_AUTHENTICATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/HttpHeaders.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></code></th>
+<td class="colLast"><code>"WWW-Authenticate"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.Link.REL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/Link.html#REL">REL</a></code></th>
+<td class="colLast"><code>"rel"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.Link.TITLE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/Link.html#TITLE">TITLE</a></code></th>
+<td class="colLast"><code>"title"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.Link.TYPE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/Link.html#TYPE">TYPE</a></code></th>
+<td class="colLast"><code>"type"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_ATOM_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML">APPLICATION_ATOM_XML</a></code></th>
+<td class="colLast"><code>"application/atom+xml"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">APPLICATION_FORM_URLENCODED</a></code></th>
+<td class="colLast"><code>"application/x-www-form-urlencoded"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_JSON">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON">APPLICATION_JSON</a></code></th>
+<td class="colLast"><code>"application/json"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_JSON_PATCH_JSON">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON">APPLICATION_JSON_PATCH_JSON</a></code></th>
+<td class="colLast"><code>"application/json-patch+json"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM">APPLICATION_OCTET_STREAM</a></code></th>
+<td class="colLast"><code>"application/octet-stream"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_SVG_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_SVG_XML">APPLICATION_SVG_XML</a></code></th>
+<td class="colLast"><code>"application/svg+xml"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_XHTML_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">APPLICATION_XHTML_XML</a></code></th>
+<td class="colLast"><code>"application/xhtml+xml"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.APPLICATION_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#APPLICATION_XML">APPLICATION_XML</a></code></th>
+<td class="colLast"><code>"application/xml"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.CHARSET_PARAMETER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#CHARSET_PARAMETER">CHARSET_PARAMETER</a></code></th>
+<td class="colLast"><code>"charset"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.MEDIA_TYPE_WILDCARD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#MEDIA_TYPE_WILDCARD">MEDIA_TYPE_WILDCARD</a></code></th>
+<td class="colLast"><code>"*"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA">MULTIPART_FORM_DATA</a></code></th>
+<td class="colLast"><code>"multipart/form-data"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.SERVER_SENT_EVENTS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#SERVER_SENT_EVENTS">SERVER_SENT_EVENTS</a></code></th>
+<td class="colLast"><code>"text/event-stream"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.TEXT_HTML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#TEXT_HTML">TEXT_HTML</a></code></th>
+<td class="colLast"><code>"text/html"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.TEXT_PLAIN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#TEXT_PLAIN">TEXT_PLAIN</a></code></th>
+<td class="colLast"><code>"text/plain"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.TEXT_XML">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#TEXT_XML">TEXT_XML</a></code></th>
+<td class="colLast"><code>"text/xml"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.MediaType.WILDCARD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/MediaType.html#WILDCARD">WILDCARD</a></code></th>
+<td class="colLast"><code>"*/*"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.NewCookie.DEFAULT_MAX_AGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/NewCookie.html#DEFAULT_MAX_AGE">DEFAULT_MAX_AGE</a></code></th>
+<td class="colLast"><code>-1</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.SecurityContext.BASIC_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/SecurityContext.html#BASIC_AUTH">BASIC_AUTH</a></code></th>
+<td class="colLast"><code>"BASIC"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.SecurityContext.CLIENT_CERT_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/SecurityContext.html#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a></code></th>
+<td class="colLast"><code>"CLIENT_CERT"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.core.SecurityContext.DIGEST_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/SecurityContext.html#DIGEST_AUTH">DIGEST_AUTH</a></code></th>
+<td class="colLast"><code>"DIGEST"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a id="javax.ws.rs.core.SecurityContext.FORM_AUTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/core/SecurityContext.html#FORM_AUTH">FORM_AUTH</a></code></th>
+<td class="colLast"><code>"FORM"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.ext.RuntimeDelegate.JAXRS_RUNTIME_DELEGATE_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/ext/RuntimeDelegate.html#JAXRS_RUNTIME_DELEGATE_PROPERTY">JAXRS_RUNTIME_DELEGATE_PROPERTY</a></code></th>
+<td class="colLast"><code>"javax.ws.rs.ext.RuntimeDelegate"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.sse.SseEvent.RECONNECT_NOT_SET">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;long</code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/sse/SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></code></th>
+<td class="colLast"><code>-1L</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="constantsSummary">
+<table>
+<caption><span>javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a id="javax.ws.rs.sse.SseEventSource.Builder.JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><a href="javax/ws/rs/sse/SseEventSource.Builder.html#JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</a></code></th>
+<td class="colLast"><code>"javax.ws.rs.sse.SseEventSource.Builder"</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/deprecated-list.html b/apidocs/2.1.6/deprecated-list.html
new file mode 100644
index 0000000..0806997
--- /dev/null
+++ b/apidocs/2.1.6/deprecated-list.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Deprecated List (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/element-list b/apidocs/2.1.6/element-list
new file mode 100644
index 0000000..0f5b575
--- /dev/null
+++ b/apidocs/2.1.6/element-list
@@ -0,0 +1,6 @@
+javax.ws.rs
+javax.ws.rs.client
+javax.ws.rs.container
+javax.ws.rs.core
+javax.ws.rs.ext
+javax.ws.rs.sse
diff --git a/apidocs/2.1.6/help-doc.html b/apidocs/2.1.6/help-doc.html
new file mode 100644
index 0000000..d718ce5
--- /dev/null
+++ b/apidocs/2.1.6/help-doc.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>API Help (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<section role="region">
+<h2>Overview</h2>
+<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
+<ul>
+<li>Interfaces</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Class or Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class Inheritance Diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class or Interface Declaration</li>
+<li>Class or Interface Description</li>
+</ul>
+<br>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Property Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<br>
+<ul>
+<li>Field Detail</li>
+<li>Property Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type Declaration</li>
+<li>Annotation Type Description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum Declaration</li>
+<li>Enum Description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2>Search</h2>
+<p>You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".</p>
+</section>
+</li>
+</ul>
+<hr>
+<span class="emphasizedPhrase">This help file applies to API documentation generated by the standard doclet.</span></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/index-all.html b/apidocs/2.1.6/index-all.html
new file mode 100644
index 0000000..90f5edb
--- /dev/null
+++ b/apidocs/2.1.6/index-all.html
@@ -0,0 +1,5526 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Index (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a><a id="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#abortWith(javax.ws.rs.core.Response)">abortWith(Response)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Abort the filter chain with a response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#abortWith(javax.ws.rs.core.Response)">abortWith(Response)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Abort the filter chain with a response.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt; - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Abstract skeleton implementation of a <a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#%3Cinit%3E(java.util.Map)">AbstractMultivaluedMap(Map&lt;K, List&lt;V&gt;&gt;)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Initialize the backing store in the abstract parent multivalued map
+ implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#accept(java.lang.String...)">accept(String...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add the accepted response media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#accept(javax.ws.rs.core.MediaType...)">accept(MediaType...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add the accepted response media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT">ACCEPT</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT_CHARSET">ACCEPT_CHARSET</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT_ENCODING">ACCEPT_ENCODING</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#ACCEPT_LANGUAGE">ACCEPT_LANGUAGE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#accepted()">accepted()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#accepted(java.lang.Object)">accepted(Object)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains
+ a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#ACCEPTED">ACCEPTED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">202 Accepted, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#acceptEncoding(java.lang.String...)">acceptEncoding(String...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add acceptable encodings.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#acceptLanguage(java.lang.String...)">acceptLanguage(String...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add acceptable languages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#acceptLanguage(java.util.Locale...)">acceptLanguage(Locale...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add acceptable languages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#add()">add()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Add the current combination of metadata to the list of supported variants,
+ after this method is called the current combination of metadata is emptied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#add(K,V)">add(K, V)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#add(K,V)">add(K, V)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll(K, List&lt;V&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#addAll(K,java.util.List)">addAll(K, List&lt;V&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#addAll(K,V...)">addAll(K, V...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#addAll(K,V...)">addAll(K, V...)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#addFirst(K,V)">addFirst(K, V)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#addFirst(K,V)">addFirst(K, V)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull(List&lt;V&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#addNull(java.util.List)">addNull(List&lt;V&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#allow(java.lang.String...)">allow(String...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the list of allowed methods for the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#allow(java.util.Set)">allow(Set&lt;String&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the list of allowed methods for the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#ALLOW">ALLOW</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Application</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Defines the components of an application and supplies additional
+ meta-data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Application.html#%3Cinit%3E()">Application()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core">Application</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML">APPLICATION_ATOM_XML</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/atom+xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML_TYPE">APPLICATION_ATOM_XML_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">APPLICATION_FORM_URLENCODED</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/x-www-form-urlencoded" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED_TYPE">APPLICATION_FORM_URLENCODED_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON">APPLICATION_JSON</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/json" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON">APPLICATION_JSON_PATCH_JSON</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of "application/json-patch+json" media type..</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON_TYPE">APPLICATION_JSON_PATCH_JSON_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON_TYPE">APPLICATION_JSON_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON">"application/json"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM">APPLICATION_OCTET_STREAM</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/octet-stream" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM_TYPE">APPLICATION_OCTET_STREAM_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_SVG_XML">APPLICATION_SVG_XML</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/svg+xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_SVG_XML_TYPE">APPLICATION_SVG_XML_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">APPLICATION_XHTML_XML</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/xhtml+xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML_TYPE">APPLICATION_XHTML_XML_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_XML">APPLICATION_XML</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "application/xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#APPLICATION_XML_TYPE">APPLICATION_XML_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#APPLICATION_XML">"application/xml"</a> media type.</div>
+</dd>
+<dt><a href="javax/ws/rs/ApplicationPath.html" title="annotation in javax.ws.rs"><span class="typeNameLink">ApplicationPath</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Identifies the application path that serves as the base URI
+ for all resource URIs provided by <a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ReaderInterceptor.html#aroundReadFrom(javax.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom(ReaderInterceptorContext)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext">ReaderInterceptor</a></dt>
+<dd>
+<div class="block">Interceptor method wrapping calls to <a href="javax/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptor.html#aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo(WriterInterceptorContext)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext">WriterInterceptor</a></dt>
+<dd>
+<div class="block">Interceptor method wrapping calls to <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Form.html#asMap()">asMap()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Returns multivalued map representation of the form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#async()">async()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Access the asynchronous uniform request invocation interface to
+ asynchronously invoke the built request.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">AsyncInvoker</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">AsyncResponse</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">An injectable and asynchronous response that provides means for asynchronous server side
+ response processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Priorities.html#AUTHENTICATION">AUTHENTICATION</a></span> - Static variable in class javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Security authentication filter/interceptor priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#AUTHORIZATION">AUTHORIZATION</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Priorities.html#AUTHORIZATION">AUTHORIZATION</a></span> - Static variable in class javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Security authorization filter/interceptor priority.</div>
+</dd>
+</dl>
+<a id="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#BAD_GATEWAY">BAD_GATEWAY</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">502 Bad Gateway, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#BAD_REQUEST">BAD_REQUEST</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">400 Bad Request, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs"><span class="typeNameLink">BadRequestException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating a <a href="javax/ws/rs/core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E()">BadRequestException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String)">BadRequestException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">BadRequestException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">BadRequestException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">BadRequestException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(java.lang.Throwable)">BadRequestException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(javax.ws.rs.core.Response)">BadRequestException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/BadRequestException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">BadRequestException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></dt>
+<dd>
+<div class="block">Construct a new bad client request exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#baseUri(java.lang.String)">baseUri(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set the base URI as a string for resolution of relative URIs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#baseUri(java.net.URI)">baseUri(URI)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set the base URI for resolution of relative URIs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#BASIC_AUTH">BASIC_AUTH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Basic authentication.</div>
+</dd>
+<dt><a href="javax/ws/rs/BeanParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">BeanParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">The annotation that may be used to inject a custom "parameter aggregator" value object
+ into a resource class field, property or resource method parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseBroadcaster.html#broadcast(javax.ws.rs.sse.OutboundSseEvent)">broadcast(OutboundSseEvent)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Publish an SSE event to all registered <a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#bufferEntity()">bufferEntity()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Buffer the message entity data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#build()">build()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Build a new client instance using all the configuration previously specified
+ in this client builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#build()">build()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Create a Response instance from the current ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#build()">build()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Add the current combination of metadata to the list of supported variants
+ (provided the current combination of metadata is not empty) and
+ build a list of representation variants from the current state of
+ the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#build()">build()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Build <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.Builder.html#build()">build()</a></span> - Method in class javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#build(java.lang.Object...)">build(Object...)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Finish building this link using the supplied values as URI parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#build(java.lang.Object...)">build(Object...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#build(java.lang.Object%5B%5D,boolean)">build(Object[], boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#build(java.lang.String)">build(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#build(java.lang.String,javax.ws.rs.client.Entity)">build(String, Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a request invocation using an arbitrary request method name and
+ request entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#buildDelete()">buildDelete()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a DELETE request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.Builder.html#%3Cinit%3E()">Builder()</a></span> - Constructor for class javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Allows custom implementations to extend the SSE event source builder class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#buildFromEncoded(java.lang.Object...)">buildFromEncoded(Object...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#buildFromEncodedMap(java.util.Map)">buildFromEncodedMap(Map&lt;String, ?&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#buildFromMap(java.util.Map)">buildFromMap(Map&lt;String, ?&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#buildFromMap(java.util.Map,boolean)">buildFromMap(Map&lt;String, ?&gt;, boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Build a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#buildGet()">buildGet()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a GET request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#buildPost(javax.ws.rs.client.Entity)">buildPost(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a POST request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#buildPut(javax.ws.rs.client.Entity)">buildPut(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Build a PUT request invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#buildRelativized(java.net.URI,java.lang.Object...)">buildRelativized(URI, Object...)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Finish building this link using the supplied values as URI parameters
+ and relativize the result with respect to the supplied URI.</div>
+</dd>
+</dl>
+<a id="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CACHE_CONTROL">CACHE_CONTROL</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl(CacheControl)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Set the cache control data of the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl(CacheControl)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the cache control data of the message.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core"><span class="typeNameLink">CacheControl</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#%3Cinit%3E()">CacheControl()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Create a new instance of CacheControl.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#cancel()">cancel()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Cancel the suspended request processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#cancel(int)">cancel(int)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Cancel the suspended request processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#cancel(java.util.Date)">cancel(Date)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Cancel the suspended request processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#CHARSET_PARAMETER">CHARSET_PARAMETER</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">The media type <code>charset</code> parameter name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#clear()">clear()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Client</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Client is the main entry point to the fluent API used to build and execute client
+ requests in order to consume responses returned.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RuntimeType.html#CLIENT">CLIENT</a></span> - javax.ws.rs.<a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">The client run-time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Client Certificate authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#CLIENT_ERROR">CLIENT_ERROR</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>4xx</code> HTTP status codes.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client"><span class="typeNameLink">ClientBuilder</span></a> - Class in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Main entry point to the client API used to bootstrap <a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>
+ instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#%3Cinit%3E()">ClientBuilder()</a></span> - Constructor for class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Allows custom implementations to extend the <code>ClientBuilder</code> class.</div>
+</dd>
+<dt><a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">ClientErrorException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A base runtime application exception indicating a client request error
+ (HTTP <code>4xx</code> status codes).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(int)">ClientErrorException(int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(int,java.lang.Throwable)">ClientErrorException(int, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,int)">ClientErrorException(String, int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ClientErrorException(String, int, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ClientErrorException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">ClientErrorException(String, Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException(String, Response.Status, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ClientErrorException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status)">ClientErrorException(Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException(Response.Status, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></dt>
+<dd>
+<div class="block">Construct a new client error exception.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientRequestContext</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Client request filter context.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/ClientRequestFilter.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientRequestFilter</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">An extension interface implemented by client request filters.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientResponseContext</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Client response filter context.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/ClientResponseFilter.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientResponseFilter</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">An extension interface implemented by client response filters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#clone()">clone()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#clone()">clone()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a copy of the UriBuilder preserving its state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#close()">close()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Close client instance and all it's associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#close()">close()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Close the underlying message entity input stream (if available and open)
+ as well as releases any other resources associated with the response
+ (e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseBroadcaster.html#close()">close()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Close the broadcaster and all registered <a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSink.html#close()">close()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></dt>
+<dd>
+<div class="block">Close the <a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance and release all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#close()">close()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Close this event source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#close(long,java.util.concurrent.TimeUnit)">close(long, TimeUnit)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Close this event source and wait for the internal event processing task to complete
+ for up to the specified amount of wait time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#comment(java.lang.String)">comment(String)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set comment string associated with the event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/InvocationCallback.html#completed(RESPONSE)">completed(RESPONSE)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a></dt>
+<dd>
+<div class="block">Called when the invocation was successfully completed.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/CompletionCallback.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">CompletionCallback</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">A request processing callback that receives request processing completion events.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">CompletionStageRxInvoker</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;<a href="javax/ws/rs/core/Configurable.html" title="type parameter in Configurable">C</a> extends <a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&gt; - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a client or server-side configurable context.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configuration</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A configuration state associated with a <a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a> context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/DynamicFeature.html#configure(javax.ws.rs.container.ResourceInfo,javax.ws.rs.core.FeatureContext)">configure(ResourceInfo, FeatureContext)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/DynamicFeature.html" title="interface in javax.ws.rs.container">DynamicFeature</a></dt>
+<dd>
+<div class="block">A callback method called by the runtime during the application
+ deployment to register provider instances or classes in a
+ <a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core"><code>runtime configuration</code></a> scope of a particular <a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Feature.html#configure(javax.ws.rs.core.FeatureContext)">configure(FeatureContext)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core">Feature</a></dt>
+<dd>
+<div class="block">A call-back method called when the feature is to be enabled in a given
+ runtime configuration scope.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#CONFLICT">CONFLICT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">409 Conflict, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ConnectionCallback.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ConnectionCallback</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">Asynchronous request processing lifecycle callback that receives connection
+ related <a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container"><code>asynchronous response</code></a> lifecycle events.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#connectTimeout(long,java.util.concurrent.TimeUnit)">connectTimeout(long, TimeUnit)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the connect timeout.</div>
+</dd>
+<dt><a href="javax/ws/rs/ConstrainedTo.html" title="annotation in javax.ws.rs"><span class="typeNameLink">ConstrainedTo</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates the run-time context in which an annotated provider
+ is applicable.</div>
+</dd>
+<dt><a href="javax/ws/rs/Consumes.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Consumes</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Defines the media types that the methods of a resource class or
+ <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerRequestContext</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">Container request filter context.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerRequestFilter</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">An extension interface implemented by container request filters.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerResponseContext</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">Container response filter context.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ContainerResponseFilter.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerResponseFilter</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">An extension interface implemented by container response filters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_DISPOSITION">CONTENT_DISPOSITION</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc2183">IETF RFC-2183</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_ENCODING">CONTENT_ENCODING</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_ID">CONTENT_ID</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc2392">IETF RFC-2392</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_LANGUAGE">CONTENT_LANGUAGE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_LENGTH">CONTENT_LENGTH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_LOCATION">CONTENT_LOCATION</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#CONTENT_TYPE">CONTENT_TYPE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#contentLocation(java.net.URI)">contentLocation(URI)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the content location.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Context.html" title="annotation in javax.ws.rs.core"><span class="typeNameLink">Context</span></a> - Annotation Type in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">This annotation is used to inject information into a class
+ field, bean property or method parameter.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ContextResolver.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ContextResolver</span></a>&lt;<a href="javax/ws/rs/ext/ContextResolver.html" title="type parameter in ContextResolver">T</a>&gt; - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that supplies context information to resource
+ classes and other providers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#cookie(java.lang.String,java.lang.String)">cookie(String, String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add a cookie to be set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#cookie(javax.ws.rs.core.Cookie)">cookie(Cookie)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add a cookie to be set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#cookie(javax.ws.rs.core.NewCookie...)">cookie(NewCookie...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add cookies to the response message.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Cookie</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#%3Cinit%3E(java.lang.String,java.lang.String)">Cookie(String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Cookie(String, String, String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)">Cookie(String, String, String, String, int)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#COOKIE">COOKIE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/CookieParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">CookieParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#created(java.net.URI)">created(URI)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a created resource, set the location
+ header using the supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#CREATED">CREATED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">201 Created, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#createEndpoint(javax.ws.rs.core.Application,java.lang.Class)">createEndpoint(Application, Class&lt;T&gt;)</a></span> - Method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a configured instance of the supplied endpoint type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)">createHeaderDelegate(Class&lt;T&gt;)</a></span> - Method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Obtain an instance of a <a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#createLinkBuilder()">createLinkBuilder()</a></span> - Method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#createResponseBuilder()">createResponseBuilder()</a></span> - Method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#createUriBuilder()">createUriBuilder()</a></span> - Method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#createVariantListBuilder()">createVariantListBuilder()</a></span> - Method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Create a new instance of a <a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+</dd>
+</dl>
+<a id="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#data(java.lang.Class,java.lang.Object)">data(Class, Object)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event data and java type of event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#data(java.lang.Object)">data(Object)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event data and java type of event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#data(javax.ws.rs.core.GenericType,java.lang.Object)">data(GenericType, Object)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event data and a generic java type of event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#DATE">DATE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#DEFAULT_MAX_AGE">DEFAULT_MAX_AGE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Specifies that the cookie expires with the current application/browser session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#DEFAULT_VERSION">DEFAULT_VERSION</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Cookies using the default version correspond to RFC 2109.</div>
+</dd>
+<dt><a href="javax/ws/rs/DefaultValue.html" title="annotation in javax.ws.rs"><span class="typeNameLink">DefaultValue</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Defines the default value of request meta-data that is bound using one of the
+ following annotations:
+ <a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>,
+ <a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>,
+ <a href="javax/ws/rs/CookieParam.html" title="annotation in javax.ws.rs"><code>CookieParam</code></a>,
+ <a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a>,
+ or <a href="javax/ws/rs/HeaderParam.html" title="annotation in javax.ws.rs"><code>HeaderParam</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#delete()">delete()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#delete()">delete()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#delete()">delete()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#delete()">delete()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#delete(java.lang.Class)">delete(Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#delete(java.lang.Class)">delete(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#delete(java.lang.Class)">delete(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#delete(java.lang.Class)">delete(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#delete(javax.ws.rs.client.InvocationCallback)">delete(InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#delete(javax.ws.rs.core.GenericType)">delete(GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#delete(javax.ws.rs.core.GenericType)">delete(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#delete(javax.ws.rs.core.GenericType)">delete(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#delete(javax.ws.rs.core.GenericType)">delete(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</dd>
+<dt><a href="javax/ws/rs/DELETE.html" title="annotation in javax.ws.rs"><span class="typeNameLink">DELETE</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#DELETE">DELETE</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP DELETE method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#DIGEST_AUTH">DIGEST_AUTH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Digest authentication.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/DynamicFeature.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">DynamicFeature</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">A meta-provider for dynamic registration of <i>post-matching</i> providers
+ during an application setup at deployment time.</div>
+</dd>
+</dl>
+<a id="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><a href="javax/ws/rs/Encoded.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Encoded</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Disables automatic decoding of parameter values bound using <a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, <a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a> or <a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#encoding(java.lang.String)">encoding(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity content encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#encodings(java.lang.String...)">encodings(String...)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a <a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ encodings.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#encodings(java.lang.String...)">encodings(String...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Set the encoding(s) for this variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#entity(java.lang.Object)">entity(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the response entity in the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)">entity(Object, Annotation[])</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the response entity in the builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#entity(T,java.lang.String)">entity(T, String)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#entity(T,javax.ws.rs.core.MediaType)">entity(T, MediaType)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#entity(T,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity(T, MediaType, Annotation[])</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#entity(T,javax.ws.rs.core.Variant)">entity(T, Variant)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#entity(T,javax.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity(T, Variant, Annotation[])</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an entity using a supplied content media type.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client"><span class="typeNameLink">Entity</span></a>&lt;<a href="javax/ws/rs/client/Entity.html" title="type parameter in Entity">T</a>&gt; - Class in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Priorities.html#ENTITY_CODER">ENTITY_CODER</a></span> - Static variable in class javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Message encoder or decoder filter/interceptor priority.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core"><span class="typeNameLink">EntityTag</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#%3Cinit%3E(java.lang.String)">EntityTag(String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Creates a new instance of a strong <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#%3Cinit%3E(java.lang.String,boolean)">EntityTag(String, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Creates a new instance of an <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#entrySet()">entrySet()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Compares object argument to this cache control to see if they are the same
+ considering all property values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Compare for equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Compares <code>obj</code> to this tag to see if they are the same considering
+ weakness and value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Compares <code>obj</code> to this media type to see if they are the same by comparing
+ type, subtype and parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Compare for equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#equals(java.lang.Object)">equals(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Compares obj to this variant to see if they are the same
+ considering all property values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder(MultivaluedMap&lt;K, V&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder(MultivaluedMap&lt;K, V&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#ETAG">ETAG</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Request.html#evaluatePreconditions()">evaluatePreconditions()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions for a resource that does not currently
+ exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Request.html#evaluatePreconditions(java.util.Date)">evaluatePreconditions(Date)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Request.html#evaluatePreconditions(java.util.Date,javax.ws.rs.core.EntityTag)">evaluatePreconditions(Date, EntityTag)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Request.html#evaluatePreconditions(javax.ws.rs.core.EntityTag)">evaluatePreconditions(EntityTag)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ExceptionMapper.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ExceptionMapper</span></a>&lt;<a href="javax/ws/rs/ext/ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt; - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that maps Java exceptions to <a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#executorService(java.util.concurrent.ExecutorService)">executorService(ExecutorService)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#EXPECTATION_FAILED">EXPECTATION_FAILED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">417 Expectation Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#expires(java.util.Date)">expires(Date)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the response expiration date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#EXPIRES">EXPIRES</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">HTTP/1.1 documentation</a>}.</div>
+</dd>
+</dl>
+<a id="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/InvocationCallback.html#failed(java.lang.Throwable)">failed(Throwable)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a></dt>
+<dd>
+<div class="block">Called when the invocation has failed for any reason.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#familyOf(int)">familyOf(int)</a></span> - Static method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Get the response status family for the status code.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Feature</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A feature extension contract.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/FeatureContext.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">FeatureContext</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A configurable context passed to <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="javax/ws/rs/container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestFilter.html#filter(javax.ws.rs.client.ClientRequestContext)">filter(ClientRequestContext)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestFilter.html" title="interface in javax.ws.rs.client">ClientRequestFilter</a></dt>
+<dd>
+<div class="block">Filter method called before a request has been dispatched to a client
+ transport layer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseFilter.html#filter(javax.ws.rs.client.ClientRequestContext,javax.ws.rs.client.ClientResponseContext)">filter(ClientRequestContext, ClientResponseContext)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseFilter.html" title="interface in javax.ws.rs.client">ClientResponseFilter</a></dt>
+<dd>
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="javax/ws/rs/client/ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>request filter</code></a> or when the
+ HTTP invocation returns).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestFilter.html#filter(javax.ws.rs.container.ContainerRequestContext)">filter(ContainerRequestContext)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container">ContainerRequestFilter</a></dt>
+<dd>
+<div class="block">Filter method called before a request has been dispatched to a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseFilter.html#filter(javax.ws.rs.container.ContainerRequestContext,javax.ws.rs.container.ContainerResponseContext)">filter(ContainerRequestContext, ContainerResponseContext)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseFilter.html" title="interface in javax.ws.rs.container">ContainerResponseFilter</a></dt>
+<dd>
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>request filter</code></a> or by a
+ matched resource method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#FORBIDDEN">FORBIDDEN</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">403 Forbidden, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs"><span class="typeNameLink">ForbiddenException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that an access to a resource requested by
+ a client has been <a href="javax/ws/rs/core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a>
+ by the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E()">ForbiddenException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String)">ForbiddenException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ForbiddenException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ForbiddenException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(java.lang.Throwable)">ForbiddenException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ForbiddenException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ForbiddenException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></dt>
+<dd>
+<div class="block">Construct a new "forbidden" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#forInstance(java.lang.Object)">forInstance(Object)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Create a <a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core"><code>generic type</code></a> from a
+ Java <code>instance</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#form(javax.ws.rs.core.Form)">form(Form)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="javax/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#form(javax.ws.rs.core.MultivaluedMap)">form(MultivaluedMap&lt;String, String&gt;)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="javax/ws/rs/core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Form</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents the the HTML form data request entity encoded using the
+ <code>"application/x-www-form-urlencoded"</code> content type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Form.html#%3Cinit%3E()">Form()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Create a new form data instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Form.html#%3Cinit%3E(java.lang.String,java.lang.String)">Form(String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Create a new form data instance with a single parameter entry.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Form.html#%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)">Form(MultivaluedMap&lt;String, String&gt;)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Create a new form data instance and register a custom underlying parameter store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#FORM_AUTH">FORM_AUTH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">String identifier for Form authentication.</div>
+</dd>
+<dt><a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">FormParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body
+ to a resource method parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#FOUND">FOUND</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">302 Found, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fragment(java.lang.String)">fragment(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI fragment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromLink(javax.ws.rs.core.Link)">fromLink(Link)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from another link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fromLink(javax.ws.rs.core.Link)">fromLink(Link)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance initialized from a Link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod(Class&lt;?&gt;, String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method to build a link from a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod(Class&lt;?&gt;, String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance representing a relative URI initialized from a
+ <a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromPath(java.lang.String)">fromPath(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method to build a link from a path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fromPath(java.lang.String)">fromPath(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance representing a relative URI initialized from a
+ URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromResource(java.lang.Class)">fromResource(Class&lt;?&gt;)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method to build a link from a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fromResource(java.lang.Class)">fromResource(Class&lt;?&gt;)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance representing a relative URI initialized from a
+ root resource class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#fromResponse(javax.ws.rs.core.Response)">fromResponse(Response)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an
+ existing Response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#fromStatusCode(int)">fromStatusCode(int)</a></span> - Static method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ParamConverter.html#fromString(java.lang.String)">fromString(String)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a></dt>
+<dd>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html#fromString(java.lang.String)">fromString(String)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></dt>
+<dd>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromUri(java.lang.String)">fromUri(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fromUri(java.lang.String)">fromUri(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromUri(java.net.URI)">fromUri(URI)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#fromUri(java.net.URI)">fromUri(URI)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#fromUriBuilder(javax.ws.rs.core.UriBuilder)">fromUriBuilder(UriBuilder)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</dd>
+</dl>
+<a id="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#GATEWAY_TIMEOUT">GATEWAY_TIMEOUT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">504 Gateway Timeout, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core"><span class="typeNameLink">GenericEntity</span></a>&lt;<a href="javax/ws/rs/core/GenericEntity.html" title="type parameter in GenericEntity">T</a>&gt; - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a message entity of a generic type <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#%3Cinit%3E(T)">GenericEntity(T)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Constructs a new generic entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#%3Cinit%3E(T,java.lang.reflect.Type)">GenericEntity(T, Type)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Create a new instance of GenericEntity, supplying the generic type information.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core"><span class="typeNameLink">GenericType</span></a>&lt;<a href="javax/ws/rs/core/GenericType.html" title="type parameter in GenericType">T</a>&gt; - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#%3Cinit%3E()">GenericType()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Constructs a new generic type, deriving the generic type and class from
+ type parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#%3Cinit%3E(java.lang.reflect.Type)">GenericType(Type)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Constructs a new generic type, supplying the generic type
+ information and deriving the class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#get()">get()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#get()">get()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#get()">get()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#get()">get()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#get(java.lang.Class)">get(Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#get(java.lang.Class)">get(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#get(java.lang.Class)">get(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#get(java.lang.Class)">get(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#get(java.lang.Object)">get(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#get(javax.ws.rs.client.InvocationCallback)">get(InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#get(javax.ws.rs.core.GenericType)">get(GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#get(javax.ws.rs.core.GenericType)">get(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#get(javax.ws.rs.core.GenericType)">get(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#get(javax.ws.rs.core.GenericType)">get(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</dd>
+<dt><a href="javax/ws/rs/GET.html" title="annotation in javax.ws.rs"><span class="typeNameLink">GET</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#GET">GET</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP GET method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getAbsolutePath()">getAbsolutePath()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute path of the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getAbsolutePathBuilder()">getAbsolutePathBuilder()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getAcceptableLanguages()">getAcceptableLanguages()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getAcceptableLanguages()">getAcceptableLanguages()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getAcceptableLanguages()">getAcceptableLanguages()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getAcceptableMediaTypes()">getAcceptableMediaTypes()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getAllowedMethods()">getAllowedMethods()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getAllowedMethods()">getAllowedMethods()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getAllowedMethods()">getAllowedMethods()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#getAnnotations()">getAnnotations()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get the entity annotations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#getAnnotations()">getAnnotations()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get an array of the annotations formally declared on the artifact that
+ initiated the intercepted entity provider invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#getAuthenticationScheme()">getAuthenticationScheme()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns the string value of the authentication scheme used to protect
+ the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getBaseUri()">getBaseUri()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the base URI of the application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getBaseUriBuilder()">getBaseUriBuilder()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#getCacheExtension()">getCacheExtension()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to a set of extension cache control directives.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#getChallenges()">getChallenges()</a></span> - Method in exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Get the list of authorization challenges associated with the exception and
+ applicable to the resource requested by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Application.html#getClasses()">getClasses()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core">Application</a></dt>
+<dd>
+<div class="block">Get a set of root resource, provider and <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getClasses()">getClasses()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the immutable set of registered component (such as provider or
+ <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a>) classes to be instantiated, injected and utilized in the scope
+ of the configurable instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getClient()">getClient()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the client instance associated with the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#getComment()">getComment()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Get the comment associated with the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEvent.html#getComment()">getComment()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get a comment string that accompanies the event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getConfiguration()">getConfiguration()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the immutable configuration of the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#getConfiguration()">getConfiguration()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Get a live view of an internal configuration state of this configurable instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ContextResolver.html#getContext(java.lang.Class)">getContext(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a></dt>
+<dd>
+<div class="block">Get a context of type <code>T</code> that is applicable to the supplied
+ type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/Providers.html#getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)">getContextResolver(Class&lt;T&gt;, MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getContracts(java.lang.Class)">getContracts(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the extension contract registration information for a component of a given class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ParamConverterProvider.html#getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D)">getConverter(Class&lt;T&gt;, Type, Annotation[])</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext">ParamConverterProvider</a></dt>
+<dd>
+<div class="block">Obtain a <a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion
+ for an instance of a particular Java type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getCookies()">getCookies()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get any cookies that accompanied the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getCookies()">getCookies()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get any new cookies set on the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getCookies()">getCookies()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get any cookies that accompanied the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getCookies()">getCookies()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get any new cookies set on the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getCookies()">getCookies()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get any cookies that accompanied the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getCookies()">getCookies()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get any new cookies set on the response message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.html#getData()">getData()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getDate()">getDate()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getDate()">getDate()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getDate()">getDate()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getDate()">getDate()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getDate()">getDate()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getDate()">getDate()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get message date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#getDomain()">getDomain()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the domain of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#getEncoding()">getEncoding()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity encoding.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#getEncoding()">getEncoding()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the encoding of the variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getEntity()">getEntity()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the message entity Java instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#getEntity()">getEntity()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getEntity()">getEntity()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the message entity Java instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#getEntity()">getEntity()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Get the enclosed entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getEntity()">getEntity()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the message entity Java instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptorContext.html#getEntity()">getEntity()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Get object to be written as HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getEntityAnnotations()">getEntityAnnotations()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the annotations attached to the entity instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getEntityAnnotations()">getEntityAnnotations()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the annotations attached to the entity instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getEntityClass()">getEntityClass()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the raw entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getEntityClass()">getEntityClass()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the raw entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getEntityStream()">getEntityStream()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getEntityTag()">getEntityTag()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getEntityTag()">getEntityTag()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getEntityTag()">getEntityTag()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getEntityType()">getEntityType()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the generic entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getEntityType()">getEntityType()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the generic entity type information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/Providers.html#getExceptionMapper(java.lang.Class)">getExceptionMapper(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get an exception mapping provider for a particular class of exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#getExpiry()">getExpiry()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Get the cookie expiry date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#getFamily()">getFamily()</a></span> - Method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the class of status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.StatusType.html#getFamily()">getFamily()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the class of status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#getFirst(K)">getFirst(K)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#getFirst(K)">getFirst(K)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#getGenericType()">getGenericType()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get the type of the object to be produced or written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.html#getGenericType()">getGenericType()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get generic data type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the mutable request headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the mutable response headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the mutable request headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the mutable response headers multivalued map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getHeaders()">getHeaders()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get view of the response headers and their object values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ReaderInterceptorContext.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Get mutable map of HTTP headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptorContext.html#getHeaders()">getHeaders()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Get mutable map of HTTP headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get a HTTP header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getHeaderString(java.lang.String)">getHeaderString(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get a message header as a single string value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#getHostnameVerifier()">getHostnameVerifier()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Get the hostname verifier configured in the client or <code>null</code> in case
+ no hostname verifier has been configured.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEvent.html#getId()">getId()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get event identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ReaderInterceptorContext.html#getInputStream()">getInputStream()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Get the input stream of the object to be read.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#getInstance()">getInstance()</a></span> - Static method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getInstances()">getInstances()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the immutable set of registered component (such as provider or
+ <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a>) instances to be utilized by the configurable instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getLanguage()">getLanguage()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLanguage()">getLanguage()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#getLanguage()">getLanguage()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getLanguage()">getLanguage()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLanguage()">getLanguage()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the language of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getLanguage()">getLanguage()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the language of the request entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLanguage()">getLanguage()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the language of the message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#getLanguage()">getLanguage()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the language of the variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#getLanguageString()">getLanguageString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the string representation of the variant language,
+ or <code>null</code> if no language has been set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLastModified()">getLastModified()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the last modified date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLastModified()">getLastModified()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the last modified date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLastModified()">getLastModified()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the last modified date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLength()">getLength()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getLength()">getLength()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLength()">getLength()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getLength()">getLength()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLength()">getLength()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get Content-Length value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLink(java.lang.String)">getLink(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the link for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLink(java.lang.String)">getLink(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the link for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLink(java.lang.String)">getLink(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the link for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLinkBuilder(java.lang.String)">getLinkBuilder(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLinks()">getLinks()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the links attached to the message as header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLinks()">getLinks()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the links attached to the message as header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLinks()">getLinks()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the links attached to the message as headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getLocation()">getLocation()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getLocation()">getLocation()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getLocation()">getLocation()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#getLocation()">getLocation()</a></span> - Method in exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Get the redirection response location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getMatchedResources()">getMatchedResources()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get a read-only list of the currently matched resource class instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getMatchedURIs()">getMatchedURIs()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getMatchedURIs(boolean)">getMatchedURIs(boolean)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/PathSegment.html#getMatrixParameters()">getMatrixParameters()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a></dt>
+<dd>
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#getMaxAge()">getMaxAge()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#getMaxAge()">getMaxAge()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Get the maximum age of the the cookie in seconds.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#getMediaType()">getMediaType()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the media type of the entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the media type of the request entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getMediaType()">getMediaType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the media type of the message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#getMediaType()">getMediaType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Get the media type of the variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get media type of HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.html#getMediaType()">getMediaType()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/Providers.html#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyReader(Class&lt;T&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/Providers.html#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyWriter(Class&lt;T&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext">Providers</a></dt>
+<dd>
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getMetadata()">getMetadata()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">See <a href="javax/ws/rs/core/Response.html#getHeaders()"><code>Response.getHeaders()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getMethod()">getMethod()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getMethod()">getMethod()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Request.html#getMethod()">getMethod()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Get the request method, e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#getName()">getName()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the name of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEvent.html#getName()">getName()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get event name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#getNoCacheFields()">getNoCacheFields()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the value of the no-cache cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptorContext.html#getOutputStream()">getOutputStream()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Get the output stream for the object to be written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#getParameters()">getParameters()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Getter for a read-only parameter map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getParams()">getParams()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns an immutable map that includes all the link parameters
+ defined on this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#getParams()">getParams()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Get the parameter map for this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#getPath()">getPath()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the path of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/PathSegment.html#getPath()">getPath()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a></dt>
+<dd>
+<div class="block">Get the path segment.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getPath()">getPath()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getPath(boolean)">getPath(boolean)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getPathParameters()">getPathParameters()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getPathParameters(boolean)">getPathParameters(boolean)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getPathSegments()">getPathSegments()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a
+ list of <a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getPathSegments(boolean)">getPathSegments(boolean)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the path of the current request relative to the base URI as a list of
+ <a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#getPrivateFields()">getPrivateFields()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the value of the private cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Application.html#getProperties()">getProperties()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core">Application</a></dt>
+<dd>
+<div class="block">Get a map of custom application-wide properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getProperties()">getProperties()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the immutable bag of configuration properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the value for the property with a given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#getProperty(java.lang.String)">getProperty(String)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names
+ available within the context of the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property
+ names available within the context of the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the
+ property names available within the context of the current configuration instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#getPropertyNames()">getPropertyNames()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property
+ names available within the context of the current request/response exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getQueryParameters()">getQueryParameters()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the URI query parameters of the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getQueryParameters(boolean)">getQueryParameters(boolean)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the URI query parameters of the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#getRawType()">getRawType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Gets the raw type of the enclosed entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#getRawType()">getRawType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Returns the object representing the class or interface that declared
+ the type represented by this generic type instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#getReasonPhrase()">getReasonPhrase()</a></span> - Method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.StatusType.html#getReasonPhrase()">getReasonPhrase()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEvent.html#getReconnectDelay()">getReconnectDelay()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Get new connection retry time in milliseconds the event receiver should wait before attempting to
+ reconnect after a connection to the SSE event source is lost.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getRel()">getRel()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>rel</code> param, or
+ <code>null</code> if this param is not specified.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getRels()">getRels()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>rel</code> param as a list
+ of strings or the empty list if <code>rel</code> is not defined.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getRequest()">getRequest()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the injectable request information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getRequestHeader(java.lang.String)">getRequestHeader(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the values of a HTTP request header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#getRequestHeaders()">getRequestHeaders()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">Get the values of HTTP request headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getRequestUri()">getRequestUri()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute request URI including any query parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#getRequestUriBuilder()">getRequestUriBuilder()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ResourceContext.html#getResource(java.lang.Class)">getResource(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ResourceContext.html" title="interface in javax.ws.rs.container">ResourceContext</a></dt>
+<dd>
+<div class="block">Get a resolved instance of a resource or sub-resource class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ResourceInfo.html#getResourceClass()">getResourceClass()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a></dt>
+<dd>
+<div class="block">Get the resource class that is the target of a request,
+ or <code>null</code> if this information is not available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ResourceInfo.html#getResourceMethod()">getResourceMethod()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a></dt>
+<dd>
+<div class="block">Get the resource method that is the target of a request,
+ or <code>null</code> if this information is not available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ResponseProcessingException.html#getResponse()">getResponse()</a></span> - Method in exception javax.ws.rs.client.<a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#getResponse()">getResponse()</a></span> - Method in exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Get the HTTP response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#getRetryTime(java.util.Date)">getRetryTime(Date)</a></span> - Method in exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Get the retry time for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#getRuntimeType()">getRuntimeType()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Get the runtime type of this configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvokerProvider.html#getRxInvoker(javax.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">getRxInvoker(SyncInvoker, ExecutorService)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvokerProvider.html" title="interface in javax.ws.rs.client">RxInvokerProvider</a></dt>
+<dd>
+<div class="block">Get <a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> implementation instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getSecurityContext()">getSecurityContext()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get the injectable security context information for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Application.html#getSingletons()">getSingletons()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core">Application</a></dt>
+<dd>
+<div class="block">Get a set of root resource, provider and <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/MessageBodyWriter.html#getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getSize(T, Class&lt;?&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a></dt>
+<dd>
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of
+ the serialized form of <code>t</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#getSMaxAge()">getSMaxAge()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#getSslContext()">getSslContext()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Get the SSL context configured to be used with the current client run-time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getStatus()">getStatus()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the status code associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getStatus()">getStatus()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the status code associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getStatus()">getStatus()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the status code associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#getStatusCode()">getStatusCode()</a></span> - Method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the associated status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.StatusType.html#getStatusCode()">getStatusCode()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the associated status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#getStatusInfo()">getStatusInfo()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Get the complete status information associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getStatusInfo()">getStatusInfo()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get the complete status information associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getStatusInfo()">getStatusInfo()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get the complete status information associated with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getStringHeaders()">getStringHeaders()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get a string view of header values associated with the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#getStringHeaders()">getStringHeaders()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Get a string view of header values associated with the message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#getStringHeaders()">getStringHeaders()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Get view of the response headers and their string values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#getSubtype()">getSubtype()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Getter for subtype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getTitle()">getTitle()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>title</code> param, or
+ <code>null</code> if this param is not specified.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#getType()">getType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>
+<div class="block">Gets underlying <code>Type</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#getType()">getType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>
+<div class="block">Retrieve the type represented by the generic type instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getType()">getType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the value associated with the link <code>type</code> param, or
+ <code>null</code> if this param is not specified.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#getType()">getType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Getter for primary type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#getType()">getType()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Get Java type supported by corresponding message body provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.html#getType()">getType()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></dt>
+<dd>
+<div class="block">Get data type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#getUri()">getUri()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Get the request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#getUri()">getUri()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Get the URI identifying the resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getUri()">getUri()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns the underlying URI associated with this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#getUri()">getUri()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Get the underlying URI for this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#getUriBuilder()">getUriBuilder()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current
+ resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#getUriBuilder()">getUriBuilder()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Convenience method that returns a <a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>
+ initialized with this link's underlying URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#getUriInfo()">getUriInfo()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Get request URI information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#getUserPrincipal()">getUserPrincipal()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns a <code>java.security.Principal</code> object containing the
+ name of the current authenticated user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#getValue()">getValue()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the value of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#getValue()">getValue()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Get the value of an <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#getValues(K)">getValues(K)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Return a non-null list of values for a given key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#getVariant()">getVariant()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Get entity <a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core"><code>variant</code></a> information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#getVersion()">getVersion()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Get the version of the cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#GONE">GONE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">410 Gone, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">HTTP/1.1 documentation</a>}.</div>
+</dd>
+</dl>
+<a id="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/TimeoutHandler.html#handleTimeout(javax.ws.rs.container.AsyncResponse)">handleTimeout(AsyncResponse)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a></dt>
+<dd>
+<div class="block">Invoked when the suspended asynchronous response is about to time out.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#hasEntity()">hasEntity()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Check if there is an entity available in the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#hasEntity()">hasEntity()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Check if there is a non-empty entity input stream is available in the response
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#hasEntity()">hasEntity()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Check if there is a non-empty entity input stream  available in the request
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#hasEntity()">hasEntity()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Check if there is an entity available in the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#hasEntity()">hasEntity()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Check if there is an entity available in the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Generate hash code from cache control properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Generate a hash code by hashing all of the cookies properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Generate hashCode based on value and weakness.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Generate a hash code from the type, subtype and parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Generate a hash code by hashing all of the properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#hashCode()">hashCode()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Generate hash code from variant properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#hasLink(java.lang.String)">hasLink(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Check if link for relation exists.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#hasLink(java.lang.String)">hasLink(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Check if link for relation exists.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#hasLink(java.lang.String)">hasLink(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Check if link for relation exists.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#hasRetryAfter()">hasRetryAfter()</a></span> - Method in exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Check if the underlying response contains the information on when is it
+ possible to <a href="javax/ws/rs/core/HttpHeaders.html#RETRY_AFTER"><code>retry the request</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#head()">head()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#head()">head()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#head()">head()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#head()">head()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#head(javax.ws.rs.client.InvocationCallback)">head(InvocationCallback&lt;Response&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</dd>
+<dt><a href="javax/ws/rs/HEAD.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HEAD</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#HEAD">HEAD</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP HEAD method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#header(java.lang.String,java.lang.Object)">header(String, Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Add an arbitrary header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#header(java.lang.String,java.lang.Object)">header(String, Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add an arbitrary header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Priorities.html#HEADER_DECORATOR">HEADER_DECORATOR</a></span> - Static variable in class javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">Header decorator filter/interceptor priority.</div>
+</dd>
+<dt><a href="javax/ws/rs/HeaderParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HeaderParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#headers(javax.ws.rs.core.MultivaluedMap)">headers(MultivaluedMap&lt;String, Object&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#host(java.lang.String)">host(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI host.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#HOST">HOST</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#hostnameVerifier(javax.net.ssl.HostnameVerifier)">hostnameVerifier(HostnameVerifier)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's
+ identification information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#html(T)">html(T)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create a <a href="javax/ws/rs/core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#HTTP_VERSION_NOT_SUPPORTED">HTTP_VERSION_NOT_SUPPORTED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">505 HTTP Version Not Supported, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">HttpHeaders</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable interface that provides access to HTTP header information.</div>
+</dd>
+<dt><a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HttpMethod</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</dd>
+</dl>
+<a id="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#id(java.lang.String)">id(String)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set the event id.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#IF_MATCH">IF_MATCH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#IF_MODIFIED_SINCE">IF_MODIFIED_SINCE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#IF_NONE_MATCH">IF_NONE_MATCH</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#IF_UNMODIFIED_SINCE">IF_UNMODIFIED_SINCE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">InboundSseEvent</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Inbound Server-sent event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#INFORMATIONAL">INFORMATIONAL</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>1xx</code> HTTP status codes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ResourceContext.html#initResource(T)">initResource(T)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ResourceContext.html" title="interface in javax.ws.rs.container">ResourceContext</a></dt>
+<dd>
+<div class="block">Initialize the resource or sub-resource instance.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">InterceptorContext</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Context shared by message body interceptors that can be used to wrap
+ calls to <a href="javax/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and
+ <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#INTERNAL_SERVER_ERROR">INTERNAL_SERVER_ERROR</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">500 Internal Server Error, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">InternalServerErrorException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating an <a href="javax/ws/rs/core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server error</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E()">InternalServerErrorException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String)">InternalServerErrorException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">InternalServerErrorException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">InternalServerErrorException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(java.lang.Throwable)">InternalServerErrorException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response)">InternalServerErrorException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/InternalServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new internal server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#invocation(javax.ws.rs.core.Link)">invocation(Link)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build an invocation builder from a link.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Invocation</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">A client request invocation.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Invocation.Builder</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">A client request invocation builder.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/InvocationCallback.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">InvocationCallback</span></a>&lt;<a href="javax/ws/rs/client/InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&gt; - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Callback that can be implemented to receive the asynchronous processing
+ events from the invocation processing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#invoke()">invoke()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#invoke(java.lang.Class)">invoke(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#invoke(javax.ws.rs.core.GenericType)">invoke(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ generic type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#isCancelled()">isCancelled()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Check if the asynchronous response instance has been cancelled.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSink.html#isClosed()">isClosed()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></dt>
+<dd>
+<div class="block">Check if the stream has been closed already.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#isCompatible(javax.ws.rs.core.MediaType)">isCompatible(MediaType)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Check if this media type is compatible with another media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#isDone()">isDone()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Check if the processing of a request this asynchronous response instance belongs to
+ has finished.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#isEmpty()">isEmpty()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/InboundSseEvent.html#isEmpty()">isEmpty()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Check if the event is empty (i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#isEnabled(java.lang.Class)">isEnabled(Class&lt;? extends Feature&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been
+ previously enabled in the runtime configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#isEnabled(javax.ws.rs.core.Feature)">isEnabled(Feature)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a particular <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance has been previously
+ enabled in the runtime configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#isHttpOnly()">isHttpOnly()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Returns <code>true</code> if this cookie contains the <code>HttpOnly</code> attribute.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#isMustRevalidate()">isMustRevalidate()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#isNoCache()">isNoCache()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#isNoStore()">isNoStore()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#isNoTransform()">isNoTransform()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#isOpen()">isOpen()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Check if this event source instance has already been <a href="javax/ws/rs/sse/SseEventSource.html#open()"><code>opened</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#isPrivate()">isPrivate()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the private cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvokerProvider.html#isProviderFor(java.lang.Class)">isProviderFor(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvokerProvider.html" title="interface in javax.ws.rs.client">RxInvokerProvider</a></dt>
+<dd>
+<div class="block">Determine if this is a provider for the given <a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#isProxyRevalidate()">isProxyRevalidate()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the proxy-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/MessageBodyReader.html#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">isReadable(Class&lt;?&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a></dt>
+<dd>
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a
+ particular type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEvent.html#isReconnectDelaySet()">isReconnectDelaySet()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">Check if the connection retry time has been set in the event.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#isRegistered(java.lang.Class)">isRegistered(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a component of the supplied <code>componentClass</code> class has been previously
+ registered in the runtime configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configuration.html#isRegistered(java.lang.Object)">isRegistered(Object)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></dt>
+<dd>
+<div class="block">Check if a particular API <code>component</code> instance (such as providers or
+ <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>features</code></a>) has been previously registered in the runtime configuration context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#isSecure()">isSecure()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Whether the cookie will only be sent over a secure connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#isSecure()">isSecure()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns a boolean indicating whether this request was made
+ using a secure channel, such as HTTPS.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#isSuspended()">isSuspended()</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Check if the asynchronous response instance is in a suspended state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/SecurityContext.html#isUserInRole(java.lang.String)">isUserInRole(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></dt>
+<dd>
+<div class="block">Returns a boolean indicating whether the authenticated user is included
+ in the specified logical "role".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#isWeak()">isWeak()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Check the strength of an <code>EntityTag</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#isWildcardSubtype()">isWildcardSubtype()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Checks if the subtype is a wildcard.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#isWildcardType()">isWildcardType()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Checks if the primary type is a wildcard.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/MessageBodyWriter.html#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">isWriteable(Class&lt;?&gt;, Type, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a></dt>
+<dd>
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+</dd>
+</dl>
+<a id="I:J">
+<!--   -->
+</a>
+<h2 class="title">J</h2>
+<dl>
+<dt><a href="javax/ws/rs/package-summary.html">javax.ws.rs</a> - package javax.ws.rs</dt>
+<dd>
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a> - package javax.ws.rs.client</dt>
+<dd>
+<div class="block">The Client API</div>
+</dd>
+<dt><a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a> - package javax.ws.rs.container</dt>
+<dd>
+<div class="block">Container-specific API.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a> - package javax.ws.rs.core</dt>
+<dd>
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a> - package javax.ws.rs.ext</dt>
+<dd>
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a> - package javax.ws.rs.sse</dt>
+<dd>
+<div class="block">Server-Sent Events related API.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbAdapter.html#%3Cinit%3E()">JaxbAdapter()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Link.JaxbAdapter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#%3Cinit%3E()">JaxbLink()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Default constructor needed during unmarshalling.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#%3Cinit%3E(java.net.URI)">JaxbLink(URI)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Construct an instance from a URI and no parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbLink.html#%3Cinit%3E(java.net.URI,java.util.Map)">JaxbLink(URI, Map&lt;QName, Object&gt;)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></dt>
+<dd>
+<div class="block">Construct an instance from a URI and some parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</a></span> - Static variable in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Name of the property identifying the <a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client"><code>ClientBuilder</code></a> implementation
+ to be returned from <a href="javax/ws/rs/client/ClientBuilder.html#newBuilder()"><code>ClientBuilder.newBuilder()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.Builder.html#JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</a></span> - Static variable in class javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Name of the property identifying the <a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>SseEventSource.Builder</code></a> implementation
+ to be returned from <code>SseEventSource.Builder.newBuilder()</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#JAXRS_RUNTIME_DELEGATE_PROPERTY">JAXRS_RUNTIME_DELEGATE_PROPERTY</a></span> - Static variable in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Name of the property identifying the <a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext"><code>RuntimeDelegate</code></a> implementation
+ to be returned from <a href="javax/ws/rs/ext/RuntimeDelegate.html#getInstance()"><code>RuntimeDelegate.getInstance()</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#json(T)">json(T)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="javax/ws/rs/core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+</dd>
+</dl>
+<a id="I:K">
+<!--   -->
+</a>
+<h2 class="title">K</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#keySet()">keySet()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#keyStore(java.security.KeyStore,char%5B%5D)">keyStore(KeyStore, char[])</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side key store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#keyStore(java.security.KeyStore,java.lang.String)">keyStore(KeyStore, String)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side key store.</div>
+</dd>
+</dl>
+<a id="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#language(java.lang.String)">language(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#language(java.util.Locale)">language(Locale)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#languages(java.util.Locale...)">languages(Locale...)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a <a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ languages.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#languages(java.util.Locale...)">languages(Locale...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Set the language(s) for this variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#LAST_EVENT_ID_HEADER">LAST_EVENT_ID_HEADER</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block"><code>"Last-Event-ID"</code> HTTP request header name as defined by
+ <a href="http://www.w3.org/TR/eventsource/#last-event-id">SSE specification</a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#LAST_MODIFIED">LAST_MODIFIED</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#lastModified(java.util.Date)">lastModified(Date)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the response entity last modification date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#LENGTH_REQUIRED">LENGTH_REQUIRED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">411 Length Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#link(java.lang.String)">link(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Initialize builder using another link represented as a string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#link(java.lang.String,java.lang.String)">link(String, String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a link header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#link(java.net.URI,java.lang.String)">link(URI, String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a link header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#link(javax.ws.rs.core.Link)">link(Link)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Initialize builder using another link.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Class representing hypermedia links.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#%3Cinit%3E()">Link()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#LINK">LINK</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc5988#page-6">Web Linking (IETF RFC-5988) documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Link.Builder</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Builder class for hypermedia links.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Link.JaxbAdapter.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link.JaxbAdapter</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An implementation of JAXB <a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><code>XmlAdapter</code></a>
+ that maps the <a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> type to a value that can be
+ marshalled and unmarshalled by JAXB.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link.JaxbLink</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Value type for <a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#links(javax.ws.rs.core.Link...)">links(Link...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add one or more link headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#location(java.net.URI)">location(URI)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the location.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#LOCATION">LOCATION</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30">HTTP/1.1 documentation</a>}.</div>
+</dd>
+</dl>
+<a id="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbAdapter.html#marshal(javax.ws.rs.core.Link)">marshal(Link)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Link.JaxbAdapter</a></dt>
+<dd>
+<div class="block">Convert a <a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> into a <a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam(String, Object...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to
+ the existing set of matrix parameters of the current final segment of the
+ URI of the current target instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam(String, Object...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI path.</div>
+</dd>
+<dt><a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">MatrixParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#MEDIA_TYPE_WILDCARD">MEDIA_TYPE_WILDCARD</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">The value of a type or subtype wildcard "*".</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#mediaType(javax.ws.rs.core.MediaType)">mediaType(MediaType)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set the <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><span class="typeNameLink">MediaType</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An abstraction for a media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#%3Cinit%3E()">MediaType()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code>, both type and subtype are wildcards.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#%3Cinit%3E(java.lang.String,java.lang.String)">MediaType(String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type and subtype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)">MediaType(String, String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and
+ <a href="javax/ws/rs/core/MediaType.html#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)">MediaType(String, String, Map&lt;String, String&gt;)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and
+ parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes(MediaType...)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a <a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes(MediaType...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Set the media type(s) for this variant.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">MessageBodyReader</span></a>&lt;<a href="javax/ws/rs/ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt; - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that supports the conversion of a stream to a
+ Java type.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">MessageBodyWriter</span></a>&lt;<a href="javax/ws/rs/ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&gt; - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider that supports the conversion of a Java type to a
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#method(java.lang.String)">method(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#method(java.lang.String,java.lang.Class)">method(String, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method(String, Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method(String, Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">method(String, Entity&lt;?&gt;, InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method(String, Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.InvocationCallback)">method(String, InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method(String, GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method(String, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method(String, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method(String, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#METHOD_NOT_ALLOWED">METHOD_NOT_ALLOWED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">405 Method Not Allowed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#MOVED_PERMANENTLY">MOVED_PERMANENTLY</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">301 Moved Permanently, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA">MULTIPART_FORM_DATA</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "multipart/form-data" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA_TYPE">MULTIPART_FORM_DATA_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt; - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A hash table based implementation of <a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E()">MultivaluedHashMap()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity
+ (<code>16</code>) and the default load factor (<code>0.75</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(int)">MultivaluedHashMap(int)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and the default load factor (<code>0.75</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(int,float)">MultivaluedHashMap(int, float)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and load factor.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(java.util.Map)">MultivaluedHashMap(Map&lt;? extends K, ? extends V&gt;)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified single-valued <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedHashMap.html#%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)">MultivaluedHashMap(MultivaluedMap&lt;? extends K, ? extends V&gt;)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></dt>
+<dd>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">MultivaluedMap</span></a>&lt;<a href="javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt; - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A map of key-values pairs.</div>
+</dd>
+</dl>
+<a id="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#name(java.lang.String)">name(String)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set event name.</div>
+</dd>
+<dt><a href="javax/ws/rs/NameBinding.html" title="annotation in javax.ws.rs"><span class="typeNameLink">NameBinding</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Meta-annotation used to create name binding annotations for filters
+ and interceptors.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#NETWORK_AUTHENTICATION_REQUIRED">NETWORK_AUTHENTICATION_REQUIRED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">511 Network Authentication Required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-6">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/Sse.html#newBroadcaster()">newBroadcaster()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Get a new Server-sent event broadcaster.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#newBuilder()">newBuilder()</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#newClient()">newClient()</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Create a new <a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation
+ class provided by the implementation provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#newClient(javax.ws.rs.core.Configuration)">newClient(Configuration)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Create a new custom-configured <a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">NewCookie</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String)">NewCookie(String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)">NewCookie(String, String, String, String, int, String, int, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie(String, String, String, String, int, String, int, Date, boolean, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)">NewCookie(String, String, String, String, String, int, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)">NewCookie(String, String, String, String, String, int, boolean, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(javax.ws.rs.core.Cookie)">NewCookie(Cookie)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,boolean)">NewCookie(Cookie, String, int, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie(Cookie, String, int, Date, boolean, boolean)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/Sse.html#newEvent(java.lang.String)">newEvent(String)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Create new <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/Sse.html#newEvent(java.lang.String,java.lang.String)">newEvent(String, String)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Create new <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/Sse.html#newEventBuilder()">newEventBuilder()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse">Sse</a></dt>
+<dd>
+<div class="block">Get a new outbound event builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#newInstance()">newInstance()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Create a new builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#newInstance()">newInstance()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Creates a new instance of UriBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#newInstance()">newInstance()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Create a new builder instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#NO_CONTENT">NO_CONTENT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">204 No Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#NO_TIMEOUT">NO_TIMEOUT</a></span> - Static variable in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Constant specifying no suspend timeout value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#noContent()">noContent()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">NoContentException</span></a> - Exception in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An I/O exception thrown by <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> implementations
+ when reading a zero-length message content to indicate that the message body reader
+ is not able to produce an instance representing an zero-length message content.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NoContentException.html#%3Cinit%3E(java.lang.String)">NoContentException(String)</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core">NoContentException</a></dt>
+<dd>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NoContentException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NoContentException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core">NoContentException</a></dt>
+<dd>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NoContentException.html#%3Cinit%3E(java.lang.Throwable)">NoContentException(Throwable)</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core">NoContentException</a></dt>
+<dd>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#NOT_ACCEPTABLE">NOT_ACCEPTABLE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">406 Not Acceptable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#NOT_FOUND">NOT_FOUND</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">404 Not Found, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#NOT_IMPLEMENTED">NOT_IMPLEMENTED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">501 Not Implemented, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#NOT_MODIFIED">NOT_MODIFIED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">304 Not Modified, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#notAcceptable(java.util.List)">notAcceptable(List&lt;Variant&gt;)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</dd>
+<dt><a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAcceptableException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that a client request is
+ <a href="javax/ws/rs/core/Response.Status.html#NOT_ACCEPTABLE"><code>not acceptable</code></a>
+ by the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E()">NotAcceptableException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String)">NotAcceptableException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotAcceptableException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAcceptableException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(java.lang.Throwable)">NotAcceptableException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotAcceptableException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAcceptableException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></dt>
+<dd>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</dd>
+<dt><a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAllowedException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="javax/ws/rs/core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,java.lang.String...)">NotAllowedException(String, String...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)">NotAllowedException(String, String, String...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)">NotAllowedException(String, Throwable, String...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAllowedException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(java.lang.Throwable,java.lang.String...)">NotAllowedException(Throwable, String...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotAllowedException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAllowedException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></dt>
+<dd>
+<div class="block">Construct a new method not allowed exception.</div>
+</dd>
+<dt><a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAuthorizedException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following
+ scenarios:
+ 
+ 
+ a client did not send the required authorization credentials to access the requested resource,
+ i.e.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.Object,java.lang.Object...)">NotAuthorizedException(Object, Object...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)">NotAuthorizedException(String, Object, Object...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException(String, Throwable, Object, Object...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAuthorizedException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException(Throwable, Object, Object...)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotAuthorizedException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotAuthorizedException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></dt>
+<dd>
+<div class="block">Construct a new "not authorized" exception.</div>
+</dd>
+<dt><a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotFoundException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating a resource requested by a client was
+ <a href="javax/ws/rs/core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E()">NotFoundException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String)">NotFoundException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotFoundException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotFoundException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotFoundException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(java.lang.Throwable)">NotFoundException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotFoundException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotFoundException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotFoundException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></dt>
+<dd>
+<div class="block">Construct a new "not found" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#notModified()">notModified()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#notModified(java.lang.String)">notModified(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with a not-modified status
+ and a strong entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#notModified(javax.ws.rs.core.EntityTag)">notModified(EntityTag)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</dd>
+<dt><a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotSupportedException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="javax/ws/rs/core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E()">NotSupportedException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String)">NotSupportedException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotSupportedException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotSupportedException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(java.lang.Throwable)">NotSupportedException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotSupportedException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/NotSupportedException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></dt>
+<dd>
+<div class="block">Construct a new unsupported media type exception.</div>
+</dd>
+</dl>
+<a id="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#ok()">ok()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#ok(java.lang.Object)">ok(Object)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#ok(java.lang.Object,java.lang.String)">ok(Object, String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#ok(java.lang.Object,javax.ws.rs.core.MediaType)">ok(Object, MediaType)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#ok(java.lang.Object,javax.ws.rs.core.Variant)">ok(Object, Variant)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#OK">OK</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">200 OK, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseBroadcaster.html#onClose(java.util.function.Consumer)">onClose(Consumer&lt;SseEventSink&gt;)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Register a listener, which will be called when the SSE event output has been closed (either by client closing
+ the connection or by calling <a href="javax/ws/rs/sse/SseEventSink.html#close()"><code>SseEventSink.close()</code></a> on the server side.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/CompletionCallback.html#onComplete(java.lang.Throwable)">onComplete(Throwable)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/CompletionCallback.html" title="interface in javax.ws.rs.container">CompletionCallback</a></dt>
+<dd>
+<div class="block">A completion callback notification method that will be invoked when the request
+ processing is finished, after a response is processed and is sent back to the
+ client or when an unmapped throwable has been propagated to the hosting I/O
+ container.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ConnectionCallback.html#onDisconnect(javax.ws.rs.container.AsyncResponse)">onDisconnect(AsyncResponse)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ConnectionCallback.html" title="interface in javax.ws.rs.container">ConnectionCallback</a></dt>
+<dd>
+<div class="block">This callback notification method is invoked in case the container detects
+ that the remote client connection associated with the asynchronous response
+ has been disconnected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseBroadcaster.html#onError(java.util.function.BiConsumer)">onError(BiConsumer&lt;SseEventSink, Throwable&gt;)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Register a listener, which will be called when an exception was thrown by a given SSE event output when trying
+ to write to it or close it.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#open()">open()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Open the connection to the supplied SSE underlying <a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a> and start processing incoming
+ <a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>events</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#options()">options()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#options()">options()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#options()">options()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#options()">options()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#options(java.lang.Class)">options(Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#options(java.lang.Class)">options(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#options(java.lang.Class)">options(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#options(java.lang.Class)">options(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#options(javax.ws.rs.client.InvocationCallback)">options(InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#options(javax.ws.rs.core.GenericType)">options(GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#options(javax.ws.rs.core.GenericType)">options(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#options(javax.ws.rs.core.GenericType)">options(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#options(javax.ws.rs.core.GenericType)">options(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</dd>
+<dt><a href="javax/ws/rs/OPTIONS.html" title="annotation in javax.ws.rs"><span class="typeNameLink">OPTIONS</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#OPTIONS">OPTIONS</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP OPTIONS method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#OTHER">OTHER</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Other, unrecognized HTTP status codes.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent.Builder</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">A builder class used for creating <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</dd>
+</dl>
+<a id="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Form.html#param(java.lang.String,java.lang.String)">param(String, String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core">Form</a></dt>
+<dd>
+<div class="block">Adds a new value to the specified form parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#param(java.lang.String,java.lang.String)">param(String, String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set an arbitrary parameter on this link.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ParamConverter</span></a>&lt;<a href="javax/ws/rs/ext/ParamConverter.html" title="type parameter in ParamConverter">T</a>&gt; - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Defines a contract for a delegate responsible for converting between a
+ <code>String</code> form of a message parameter value and the corresponding custom
+ Java type <code>T</code>.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext"><span class="typeNameLink">ParamConverter.Lazy</span></a> - Annotation Type in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Mandates that a conversion of any <a href="javax/ws/rs/DefaultValue.html" title="annotation in javax.ws.rs"><code>default value</code></a> delegated
+ to a <a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>parameter converter</code></a> annotated with <code>@Lazy</code>
+ annotation SHOULD occur only once the value is actually required (e.g.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ParamConverterProvider</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Contract for a provider of <a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#PARTIAL_CONTENT">PARTIAL_CONTENT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">206 Reset Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/PATCH.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PATCH</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#PATCH">PATCH</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP PATCH method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#path(java.lang.Class)">path(Class)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append the path from a Path-annotated class to the
+ existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#path(java.lang.Class,java.lang.String)">path(Class, String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append the path from a Path-annotated method to the
+ existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#path(java.lang.reflect.Method)">path(Method)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append the path from a <a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method to the
+ existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#path(java.lang.String)">path(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of
+ the current target instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#path(java.lang.String)">path(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append path to the existing path.</div>
+</dd>
+<dt><a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Path</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Identifies the URI path that a resource class or class method will serve
+ requests for.</div>
+</dd>
+<dt><a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PathParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value of a URI template parameter or a path segment
+ containing the template parameter to a resource method parameter, resource
+ class field, or resource class
+ bean property.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">PathSegment</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#PAYMENT_REQUIRED">PAYMENT_REQUIRED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">402 Payment Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#port(int)">port(int)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#post(javax.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#post(javax.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#post(javax.ws.rs.client.Entity)">post(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">post(Entity&lt;?&gt;, InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</dd>
+<dt><a href="javax/ws/rs/POST.html" title="annotation in javax.ws.rs"><span class="typeNameLink">POST</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#POST">POST</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP POST method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#PRECONDITION_FAILED">PRECONDITION_FAILED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">412 Precondition Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#PRECONDITION_REQUIRED">PRECONDITION_REQUIRED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">428 Precondition required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/PreMatching.html" title="annotation in javax.ws.rs.container"><span class="typeNameLink">PreMatching</span></a> - Annotation Type in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">Global binding annotation that can be applied to a <a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>container request filter</code></a> to indicate that such filter should be applied globally
+ on all resources in the application before the actual resource matching occurs.</div>
+</dd>
+<dt><a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs"><span class="typeNameLink">Priorities</span></a> - Class in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A collection of built-in priority constants for the components that are supposed to be
+ ordered based on their <code>javax.annotation.Priority</code> class-level annotation value when used
+ or applied by the runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ReaderInterceptorContext.html#proceed()">proceed()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptorContext.html#proceed()">proceed()</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</dd>
+<dt><a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs"><span class="typeNameLink">ProcessingException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A base runtime processing exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ProcessingException.html#%3Cinit%3E(java.lang.String)">ProcessingException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ProcessingException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ProcessingException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ProcessingException.html#%3Cinit%3E(java.lang.Throwable)">ProcessingException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new runtime processing exception with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).</div>
+</dd>
+<dt><a href="javax/ws/rs/Produces.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Produces</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Defines the media type(s) that the methods of a resource class or
+ <a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> can produce.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#property(java.lang.String,java.lang.Object)">property(String, Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Set a new property in the context of a request represented by this invocation builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#property(java.lang.String,java.lang.Object)">property(String, Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Set a new property in the context of a request represented by this invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#property(java.lang.String,java.lang.Object)">property(String, Object)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Set the new configuration property, if already set, the existing value of
+ the property will be updated.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/Provider.html" title="annotation in javax.ws.rs.ext"><span class="typeNameLink">Provider</span></a> - Annotation Type in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Marks an implementation of an extension interface that should be discoverable
+ by the runtime during a provider scanning phase.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">Providers</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#PROXY_AUTHENTICATION_REQUIRED">PROXY_AUTHENTICATION_REQUIRED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">407 Proxy Authentication Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#put(javax.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#put(javax.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#put(javax.ws.rs.client.Entity)">put(Entity&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put(Entity&lt;?&gt;, Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">put(Entity&lt;?&gt;, InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put(Entity&lt;?&gt;, GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#put(K,java.util.List)">put(K, List&lt;V&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/ws/rs/PUT.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PUT</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#PUT">PUT</a></span> - Static variable in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">HTTP PUT method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll(Map&lt;? extends K, ? extends List&lt;V&gt;&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#putSingle(K,V)">putSingle(K, V)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Set the value for the key to be a one item list consisting of the supplied
+ value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MultivaluedMap.html#putSingle(K,V)">putSingle(K, V)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></dt>
+<dd>
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
+</dd>
+</dl>
+<a id="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#queryParam(java.lang.String,java.lang.Object...)">queryParam(String, Object...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI
+ of the current target instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#queryParam(java.lang.String,java.lang.Object...)">queryParam(String, Object...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append a query parameter to the existing set of query parameters.</div>
+</dd>
+<dt><a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">QueryParam</span></a> - Annotation Type in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</dd>
+</dl>
+<a id="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/InboundSseEvent.html#readData()">readData()</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Get the original event data as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/InboundSseEvent.html#readData(java.lang.Class)">readData(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given Java type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/InboundSseEvent.html#readData(java.lang.Class,javax.ws.rs.core.MediaType)">readData(Class&lt;T&gt;, MediaType)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given Java type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/InboundSseEvent.html#readData(javax.ws.rs.core.GenericType)">readData(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given generic type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/InboundSseEvent.html#readData(javax.ws.rs.core.GenericType,javax.ws.rs.core.MediaType)">readData(GenericType&lt;T&gt;, MediaType)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></dt>
+<dd>
+<div class="block">Read event data as a given generic type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#readEntity(java.lang.Class)">readEntity(Class&lt;T&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#readEntity(java.lang.Class,java.lang.annotation.Annotation%5B%5D)">readEntity(Class&lt;T&gt;, Annotation[])</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#readEntity(javax.ws.rs.core.GenericType)">readEntity(GenericType&lt;T&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#readEntity(javax.ws.rs.core.GenericType,java.lang.annotation.Annotation%5B%5D)">readEntity(GenericType&lt;T&gt;, Annotation[])</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ReaderInterceptor</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Interface for message body reader interceptors that wrap around calls
+ to <a href="javax/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ReaderInterceptorContext</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Context class used by <a href="javax/ws/rs/ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>
+ to intercept calls to (@link javax.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom(Class&lt;T&gt;, Type, Annotation[], MediaType, MultivaluedMap&lt;String, String&gt;, InputStream)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a></dt>
+<dd>
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#readTimeout(long,java.util.concurrent.TimeUnit)">readTimeout(long, TimeUnit)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the read timeout.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></span> - Static variable in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></dt>
+<dd>
+<div class="block">A "reconnection not set" value for the SSE reconnect delay set via SSE event <code>retry</code> field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html#reconnectDelay(long)">reconnectDelay(long)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></dt>
+<dd>
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait
+ before attempting to reconnect in case a connection to SSE event source is lost.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.Builder.html#reconnectingEvery(long,java.util.concurrent.TimeUnit)">reconnectingEvery(long, TimeUnit)</a></span> - Method in class javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>
+<div class="block">Set the initial reconnect delay to be used by the event source.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#REDIRECTION">REDIRECTION</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>3xx</code> HTTP status codes.</div>
+</dd>
+<dt><a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs"><span class="typeNameLink">RedirectionException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime application exception indicating a request redirection
+ (HTTP <code>3xx</code> status codes).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#%3Cinit%3E(int,java.net.URI)">RedirectionException(int, URI)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#%3Cinit%3E(java.lang.String,int,java.net.URI)">RedirectionException(String, int, URI)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">RedirectionException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.net.URI)">RedirectionException(String, Response.Status, URI)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#%3Cinit%3E(javax.ws.rs.core.Response)">RedirectionException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RedirectionException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.net.URI)">RedirectionException(Response.Status, URI)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></dt>
+<dd>
+<div class="block">Construct a new redirection exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#register(java.lang.Class)">register(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register an asynchronous processing lifecycle callback class to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Class)">register(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Class,int)">register(Class&lt;?&gt;, int)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#register(java.lang.Class,java.lang.Class...)">register(Class&lt;?&gt;, Class&lt;?&gt;...)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register asynchronous processing lifecycle callback classes to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register(Class&lt;?&gt;, Class&lt;?&gt;...)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Class,java.util.Map)">register(Class&lt;?&gt;, Map&lt;Class&lt;?&gt;, Integer&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#register(java.lang.Object)">register(Object)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register an asynchronous processing lifecycle callback instance to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Object)">register(Object)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Object,int)">register(Object, int)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register(Object, Class&lt;?&gt;...)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#register(java.lang.Object,java.lang.Object...)">register(Object, Object...)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Register an asynchronous processing lifecycle callback instances to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Configurable.html#register(java.lang.Object,java.util.Map)">register(Object, Map&lt;Class&lt;?&gt;, Integer&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></dt>
+<dd>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#register(java.util.function.Consumer)">register(Consumer&lt;InboundSseEvent&gt;)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Register a <a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer)">register(Consumer&lt;InboundSseEvent&gt;, Consumer&lt;Throwable&gt;)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Register <a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">register(Consumer&lt;InboundSseEvent&gt;, Consumer&lt;Throwable&gt;, Runnable)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Register <a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseBroadcaster.html#register(javax.ws.rs.sse.SseEventSink)">register(SseEventSink)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></dt>
+<dd>
+<div class="block">Register provided <a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#rel(java.lang.String)">rel(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Convenience method to set a link relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#REL">REL</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Rel link param from RFC 5988.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#relativize(java.net.URI)">relativize(URI)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Relativize a URI with respect to the current request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#remove(java.lang.Object)">remove(Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#removeProperty(java.lang.String)">removeProperty(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#removeProperty(java.lang.String)">removeProperty(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#removeProperty(java.lang.String)">removeProperty(String)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#replaceAll(javax.ws.rs.core.MultivaluedMap)">replaceAll(MultivaluedMap&lt;String, Object&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#replaceMatrix(java.lang.String)">replaceMatrix(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#replaceMatrixParam(java.lang.String,java.lang.Object...)">replaceMatrixParam(String, Object...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Replace the existing value(s) of a matrix parameter on
+ the current final segment of the URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#replacePath(java.lang.String)">replacePath(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#replaceQuery(java.lang.String)">replaceQuery(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI query string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#replaceQueryParam(java.lang.String,java.lang.Object...)">replaceQueryParam(String, Object...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Replace the existing value(s) of a query parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#request()">request()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Start building a request to the targeted web resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#request(java.lang.String...)">request(String...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#request(javax.ws.rs.core.MediaType...)">request(MediaType...)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Request</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable helper for request processing, all methods throw an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the scope of a request
+ (e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#REQUEST_ENTITY_TOO_LARGE">REQUEST_ENTITY_TOO_LARGE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">413 Request Entity Too Large, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#REQUEST_HEADER_FIELDS_TOO_LARGE">REQUEST_HEADER_FIELDS_TOO_LARGE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">431 Request Header Fields Too Large, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#REQUEST_TIMEOUT">REQUEST_TIMEOUT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">408 Request Timeout, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#REQUEST_URI_TOO_LONG">REQUEST_URI_TOO_LONG</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">414 Request-URI Too Long, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#REQUESTED_RANGE_NOT_SATISFIABLE">REQUESTED_RANGE_NOT_SATISFIABLE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">416 Requested Range Not Satisfiable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#RESET_CONTENT">RESET_CONTENT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">205 Reset Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriInfo.html#resolve(java.net.URI)">resolve(URI)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></dt>
+<dd>
+<div class="block">Resolve a relative URI with respect to the base URI of the application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate(String, Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate(String, Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate(String, Object, boolean)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate(String, Object, boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded(String, Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied encoded value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded(String, Object)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied encoded value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#resolveTemplates(java.util.Map)">resolveTemplates(Map&lt;String, Object&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#resolveTemplates(java.util.Map)">resolveTemplates(Map&lt;String, Object&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates(Map&lt;String, Object&gt;, boolean)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates(Map&lt;String, Object&gt;, boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/WebTarget.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded(Map&lt;String, Object&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></dt>
+<dd>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-encoded value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded(Map&lt;String, Object&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ResourceContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ResourceContext</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">The resource context provides access to instances of resource classes.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/ResourceInfo.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ResourceInfo</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">An injectable class to access the resource class and resource method
+ matched by the current request.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Response</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#%3Cinit%3E()">Response()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Protected constructor, use one of the static methods to obtain a
+ <a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a> instance and obtain a Response from that.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Response.ResponseBuilder</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core"><span class="typeNameLink">Response.Status</span></a> - Enum in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core"><span class="typeNameLink">Response.Status.Family</span></a> - Enum in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An enumeration representing the class of status code.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Response.StatusType</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Base interface for statuses used in responses.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#%3Cinit%3E()">ResponseBuilder()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Protected constructor, use one of the static methods of
+ <code>Response</code> to obtain an instance.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client"><span class="typeNameLink">ResponseProcessingException</span></a> - Exception in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Client-side runtime processing exception thrown to indicate that
+ response processing has failed (e.g.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ResponseProcessingException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String)">ResponseProcessingException(Response, String)</a></span> - Constructor for exception javax.ws.rs.client.<a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ResponseProcessingException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">ResponseProcessingException(Response, String, Throwable)</a></span> - Constructor for exception javax.ws.rs.client.<a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new runtime response processing exception with the specified detail
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ResponseProcessingException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ResponseProcessingException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.client.<a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></dt>
+<dd>
+<div class="block">Constructs a new runtime response processing exception
+ for a specific <a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><code>response</code></a> with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#resume(java.lang.Object)">resume(Object)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Resume the suspended request processing using the provided response data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#resume(java.lang.Throwable)">resume(Throwable)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Resume the suspended request processing using the provided throwable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#RETRY_AFTER">RETRY_AFTER</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate</span></a> - Class in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Implementations of this API provide a concrete subclass of RuntimeDelegate and
+ various API methods defer to methods of RuntimeDelegate for their
+ functionality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#%3Cinit%3E()">RuntimeDelegate()</a></span> - Constructor for class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Allows custom implementations to extend the <code>RuntimeDelegate</code> class.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate.HeaderDelegate</span></a>&lt;<a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&gt; - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Defines the contract for a delegate that is responsible for
+ converting between the String form of a HTTP header and
+ the corresponding type <code>T</code>.</div>
+</dd>
+<dt><a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs"><span class="typeNameLink">RuntimeType</span></a> - Enum in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Enumeration of runtime types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#rx()">rx()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.Builder.html#rx(java.lang.Class)">rx(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></dt>
+<dd>
+<div class="block">Access a reactive invoker based on a <a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass provider.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">RxInvoker</span></a>&lt;<a href="javax/ws/rs/client/RxInvoker.html" title="type parameter in RxInvoker">T</a>&gt; - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/RxInvokerProvider.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">RxInvokerProvider</span></a>&lt;<a href="javax/ws/rs/client/RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a> extends <a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt; - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block"><a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</dd>
+</dl>
+<a id="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">scheduledExecutorService(ScheduledExecutorService)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#scheme(java.lang.String)">scheme(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI scheme.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#schemeSpecificPart(java.lang.String)">schemeSpecificPart(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>).</div>
+</dd>
+<dt><a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">SecurityContext</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable interface that provides access to security related
+ information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#SEE_OTHER">SEE_OTHER</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">303 See Other, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#seeOther(java.net.URI)">seeOther(URI)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a redirection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#segment(java.lang.String...)">segment(String...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Append path segments to the existing path.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Request.html#selectVariant(java.util.List)">selectVariant(List&lt;Variant&gt;)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core">Request</a></dt>
+<dd>
+<div class="block">Select the representation variant that best matches the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSink.html#send(javax.ws.rs.sse.OutboundSseEvent)">send(OutboundSseEvent)</a></span> - Method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></dt>
+<dd>
+<div class="block">Send an outbound Server-sent event to this sink.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RuntimeType.html#SERVER">SERVER</a></span> - javax.ws.rs.<a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">The server run-time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#SERVER_ERROR">SERVER_ERROR</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>5xx</code> HTTP status codes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#SERVER_SENT_EVENTS">SERVER_SENT_EVENTS</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of Server sent events media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#SERVER_SENT_EVENTS_TYPE">SERVER_SENT_EVENTS_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Server sent events media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#serverError()">serverError()</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+</dd>
+<dt><a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">ServerErrorException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A base runtime application exception indicating a server error
+ (HTTP <code>5xx</code> status codes).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(int)">ServerErrorException(int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(int,java.lang.Throwable)">ServerErrorException(int, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,int)">ServerErrorException(String, int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ServerErrorException(String, int, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ServerErrorException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">ServerErrorException(String, Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException(String, Response.Status, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ServerErrorException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status)">ServerErrorException(Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException(Response.Status, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></dt>
+<dd>
+<div class="block">Construct a new server error exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#SERVICE_UNAVAILABLE">SERVICE_UNAVAILABLE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">503 Service Unavailable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs"><span class="typeNameLink">ServiceUnavailableException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="javax/ws/rs/core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E()">ServiceUnavailableException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information
+ specified for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.Long)">ServiceUnavailableException(Long)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.Long,java.lang.Throwable)">ServiceUnavailableException(Long, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String)">ServiceUnavailableException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information
+ specified for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.lang.Long)">ServiceUnavailableException(String, Long)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)">ServiceUnavailableException(String, Long, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.util.Date)">ServiceUnavailableException(String, Date)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)">ServiceUnavailableException(String, Date, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with a date specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ServiceUnavailableException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException(String, Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.util.Date)">ServiceUnavailableException(Date)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(java.util.Date,java.lang.Throwable)">ServiceUnavailableException(Date, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception with a date specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ServiceUnavailableException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ServiceUnavailableException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException(Response, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></dt>
+<dd>
+<div class="block">Construct a new "service unavailable" exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#SET_COOKIE">SET_COOKIE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations(Annotation[])</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update annotations on the formal declaration of the artifact that
+ initiated the intercepted entity provider invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#setEntity(java.lang.Object)">setEntity(Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#setEntity(java.lang.Object)">setEntity(Object)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new message entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptorContext.html#setEntity(java.lang.Object)">setEntity(Object)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Update object to be written as HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">setEntity(Object, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">setEntity(Object, Annotation[], MediaType)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#setEntityStream(java.io.InputStream)">setEntityStream(InputStream)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Set a new entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#setEntityStream(java.io.InputStream)">setEntityStream(InputStream)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new entity input stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#setEntityStream(java.io.OutputStream)">setEntityStream(OutputStream)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#setEntityStream(java.io.OutputStream)">setEntityStream(OutputStream)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new entity output stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#setGenericType(java.lang.reflect.Type)">setGenericType(Type)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update type of the object to be produced or written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ReaderInterceptorContext.html#setInputStream(java.io.InputStream)">setInputStream(InputStream)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></dt>
+<dd>
+<div class="block">Set the input stream of the object to be read.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.html#setInstance(javax.ws.rs.ext.RuntimeDelegate)">setInstance(RuntimeDelegate)</a></span> - Static method in class javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dt>
+<dd>
+<div class="block">Set the runtime delegate that will be used by classes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setMaxAge(int)">setMaxAge(int)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#setMediaType(javax.ws.rs.core.MediaType)">setMediaType(MediaType)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update media type of HTTP entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#setMethod(java.lang.String)">setMethod(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#setMethod(java.lang.String)">setMethod(String)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set the request method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setMustRevalidate(boolean)">setMustRevalidate(boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setNoCache(boolean)">setNoCache(boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setNoStore(boolean)">setNoStore(boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setNoTransform(boolean)">setNoTransform(boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/WriterInterceptorContext.html#setOutputStream(java.io.OutputStream)">setOutputStream(OutputStream)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></dt>
+<dd>
+<div class="block">Set a new output stream for the object to be written.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setPrivate(boolean)">setPrivate(boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the private cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty(String, Object)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty(String, Object)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty(String, Object)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setProxyRevalidate(boolean)">setProxyRevalidate(boolean)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#setRequestUri(java.net.URI)">setRequestUri(URI)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new request URI using the current base URI of the application to
+ resolve the application-specific request URI part.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#setRequestUri(java.net.URI,java.net.URI)">setRequestUri(URI, URI)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new request URI using a new base URI to resolve the application-specific
+ request URI part.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerRequestContext.html#setSecurityContext(javax.ws.rs.core.SecurityContext)">setSecurityContext(SecurityContext)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></dt>
+<dd>
+<div class="block">Set a new injectable security context information for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#setSMaxAge(int)">setSMaxAge(int)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#setStatus(int)">setStatus(int)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Set a new response status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#setStatus(int)">setStatus(int)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set a new response status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientResponseContext.html#setStatusInfo(javax.ws.rs.core.Response.StatusType)">setStatusInfo(Response.StatusType)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></dt>
+<dd>
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/ContainerResponseContext.html#setStatusInfo(javax.ws.rs.core.Response.StatusType)">setStatusInfo(Response.StatusType)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></dt>
+<dd>
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)">setTimeout(long, TimeUnit)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Set/update the suspend timeout.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/container/AsyncResponse.html#setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)">setTimeoutHandler(TimeoutHandler)</a></span> - Method in interface javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></dt>
+<dd>
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/InterceptorContext.html#setType(java.lang.Class)">setType(Class&lt;?&gt;)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></dt>
+<dd>
+<div class="block">Update Java type before calling message body provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientRequestContext.html#setUri(java.net.URI)">setUri(URI)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></dt>
+<dd>
+<div class="block">Set a new request URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#size()">size()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">Sse</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Server-side entry point for creating <a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse"><code>SseBroadcaster</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseBroadcaster</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Server-Sent events broadcasting facility.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEvent</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Base Server Sent Event definition.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEventSink</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Outbound Server-Sent Events stream.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEventSource</span></a> - Interface in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block">Client for reading and processing <a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><span class="typeNameLink">SseEventSource.Builder</span></a> - Class in <a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></dt>
+<dd>
+<div class="block"><a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#sslContext(javax.net.ssl.SSLContext)">sslContext(SSLContext)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the SSL context that will be used when creating secured transport connections
+ to server endpoints from <a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web targets</code></a> created by the client
+ instance that is using this SSL context.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#status(int)">status(int)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#status(int)">status(int)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#status(int,java.lang.String)">status(int, String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#status(int,java.lang.String)">status(int, String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#status(javax.ws.rs.core.Response.Status)">status(Response.Status)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#status(javax.ws.rs.core.Response.Status)">status(Response.Status)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#status(javax.ws.rs.core.Response.StatusType)">status(Response.StatusType)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the status on the ResponseBuilder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#status(javax.ws.rs.core.Response.StatusType)">status(Response.StatusType)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#store">store</a></span> - Variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/StreamingOutput.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">StreamingOutput</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A type that may be used as a resource method return value or as the entity
+ in a <a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> when the application wishes to stream the output.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#submit()">submit()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#submit(java.lang.Class)">submit(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#submit(javax.ws.rs.client.InvocationCallback)">submit(InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and register an
+ <a href="javax/ws/rs/client/InvocationCallback.html" title="interface in javax.ws.rs.client"><code>InvocationCallback</code></a> to process the future result of the invocation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Invocation.html#submit(javax.ws.rs.core.GenericType)">submit(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dt>
+<dd>
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified generic type back.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#SUCCESSFUL">SUCCESSFUL</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block"><code>2xx</code> HTTP status codes.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/Suspended.html" title="annotation in javax.ws.rs.container"><span class="typeNameLink">Suspended</span></a> - Annotation Type in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">Inject a suspended <a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked
+ <a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">SyncInvoker</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</dd>
+</dl>
+<a id="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#tag(java.lang.String)">tag(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set a strong response entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#tag(javax.ws.rs.core.EntityTag)">tag(EntityTag)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set a response entity tag.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#target(java.lang.String)">target(String)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#target(java.net.URI)">target(URI)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.Builder.html#target(javax.ws.rs.client.WebTarget)">target(WebTarget)</a></span> - Method in class javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/sse/SseEventSource.html#target(javax.ws.rs.client.WebTarget)">target(WebTarget)</a></span> - Static method in interface javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dt>
+<dd>
+<div class="block">Create a new <a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to
+ configure and fine-tune various aspects of a newly prepared event source instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#target(javax.ws.rs.core.Link)">target(Link)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Client.html#target(javax.ws.rs.core.UriBuilder)">target(UriBuilder)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client">Client</a></dt>
+<dd>
+<div class="block">Build a new web resource target.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#TEMPORARY_REDIRECT">TEMPORARY_REDIRECT</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">307 Temporary Redirect, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.html#temporaryRedirect(java.net.URI)">temporaryRedirect(URI)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a></dt>
+<dd>
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#text(T)">text(T)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create a <a href="javax/ws/rs/core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#TEXT_HTML">TEXT_HTML</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "text/html" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#TEXT_HTML_TYPE">TEXT_HTML_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#TEXT_HTML">"text/html"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#TEXT_PLAIN">TEXT_PLAIN</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "text/plain" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#TEXT_PLAIN_TYPE">TEXT_PLAIN_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#TEXT_XML">TEXT_XML</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing "text/xml" media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#TEXT_XML_TYPE">TEXT_XML_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="javax/ws/rs/core/MediaType.html#TEXT_XML">"text/xml"</a> media type.</div>
+</dd>
+<dt><a href="javax/ws/rs/container/TimeoutHandler.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">TimeoutHandler</span></a> - Interface in <a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></dt>
+<dd>
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#title(java.lang.String)">title(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#TITLE">TITLE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Title link param from RFC 5988.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#toCookie()">toCookie()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Obtain a new instance of a <a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a> with the same name, value, path,
+ domain and version as this <code>NewCookie</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.StatusType.html#toEnum()">toEnum()</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></dt>
+<dd>
+<div class="block">Get the this Status Type as a <a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core"><code>Response.Status</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#TOO_MANY_REQUESTS">TOO_MANY_REQUESTS</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">429 Too Many Requests, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ExceptionMapper.html#toResponse(E)">toResponse(E)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a></dt>
+<dd>
+<div class="block">Map an exception to a <a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#toString()">toString()</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Convert the cache control to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Convert the cookie to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Convert the entity tag to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericEntity.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/GenericType.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Returns a string representation as a link header (RFC 5988).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Convert the media type to a string suitable for use as the value of a
+ corresponding HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Convert the cookie to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#toString()">toString()</a></span> - Method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Get the reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#toString()">toString()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/ParamConverter.html#toString(T)">toString(T)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a></dt>
+<dd>
+<div class="block">Convert the supplied value to a String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html#toString(T)">toString(T)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></dt>
+<dd>
+<div class="block">Convert the supplied value to a String.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#toTemplate()">toTemplate()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Get the URI template string represented by this URI builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#trace()">trace()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#trace()">trace()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#trace()">trace()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#trace()">trace()</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#trace(java.lang.Class)">trace(Class&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#trace(java.lang.Class)">trace(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#trace(java.lang.Class)">trace(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#trace(java.lang.Class)">trace(Class&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#trace(javax.ws.rs.client.InvocationCallback)">trace(InvocationCallback&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/RxInvoker.html#trace(javax.ws.rs.core.GenericType)">trace(GenericType&lt;R&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/AsyncInvoker.html#trace(javax.ws.rs.core.GenericType)">trace(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/CompletionStageRxInvoker.html#trace(javax.ws.rs.core.GenericType)">trace(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/SyncInvoker.html#trace(javax.ws.rs.core.GenericType)">trace(GenericType&lt;T&gt;)</a></span> - Method in interface javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></dt>
+<dd>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#trustStore(java.security.KeyStore)">trustStore(KeyStore)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the client-side trust store.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#type(java.lang.String)">type(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#type(java.lang.String)">type(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#type(javax.ws.rs.core.MediaType)">type(MediaType)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set the message entity media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#TYPE">TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Type link param from RFC 5988.</div>
+</dd>
+</dl>
+<a id="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#UNAUTHORIZED">UNAUTHORIZED</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">401 Unauthorized, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.JaxbAdapter.html#unmarshal(javax.ws.rs.core.Link.JaxbLink)">unmarshal(Link.JaxbLink)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Link.JaxbAdapter</a></dt>
+<dd>
+<div class="block">Convert a <a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE">UNSUPPORTED_MEDIA_TYPE</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">415 Unsupported Media Type, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#uri(java.lang.String)">uri(String)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#uri(java.lang.String)">uri(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied
+ URI to the UriBuilder replacing any existing values for those components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#uri(java.net.URI)">uri(URI)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set underlying URI template for the link being constructed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#uri(java.net.URI)">uri(URI)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing
+ any existing values for those components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.Builder.html#uriBuilder(javax.ws.rs.core.UriBuilder)">uriBuilder(UriBuilder)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></dt>
+<dd>
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">UriBuilder</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#%3Cinit%3E()">UriBuilder()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code>
+ methods to obtain an instance.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">UriBuilderException</span></a> - Exception in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A runtime exception thrown by <a href="javax/ws/rs/core/UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when
+ a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be constructed based on the current state of the
+ builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilderException.html#%3Cinit%3E()">UriBuilderException()</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>UriBuilderException</code> without detail message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilderException.html#%3Cinit%3E(java.lang.String)">UriBuilderException(String)</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilderException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">UriBuilderException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilderException.html#%3Cinit%3E(java.lang.Throwable)">UriBuilderException(Throwable)</a></span> - Constructor for exception javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></dt>
+<dd>
+<div class="block">Constructs a new exception with the specified cause and a detail message
+ of (<code>cause==null ? null : cause.toString()</code>) (which typically contains
+ the class and detail message of cause).</div>
+</dd>
+<dt><a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">UriInfo</span></a> - Interface in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">An injectable interface that provides access to application and request
+ URI information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#USE_PROXY">USE_PROXY</a></span> - javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">305 Use Proxy, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Priorities.html#USER">USER</a></span> - Static variable in class javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs">Priorities</a></dt>
+<dd>
+<div class="block">User-level filter/interceptor priority.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#USER_AGENT">USER_AGENT</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43">HTTP/1.1 documentation</a>}.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/UriBuilder.html#userInfo(java.lang.String)">userInfo(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></dt>
+<dd>
+<div class="block">Set the URI user-info.</div>
+</dd>
+</dl>
+<a id="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ApplicationPath.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/ApplicationPath.html" title="annotation in javax.ws.rs">ApplicationPath</a></dt>
+<dd>
+<div class="block">Defines the base URI for all resource URIs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ConstrainedTo.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/ConstrainedTo.html" title="annotation in javax.ws.rs">ConstrainedTo</a></dt>
+<dd>
+<div class="block">Define the <a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs"><code>constraint type</code></a> to be placed on a provider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Consumes.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/Consumes.html" title="annotation in javax.ws.rs">Consumes</a></dt>
+<dd>
+<div class="block">A list of media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/CookieParam.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/CookieParam.html" title="annotation in javax.ws.rs">CookieParam</a></dt>
+<dd>
+<div class="block">Defines the name of the HTTP cookie whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/DefaultValue.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/DefaultValue.html" title="annotation in javax.ws.rs">DefaultValue</a></dt>
+<dd>
+<div class="block">The specified default value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/FormParam.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs">FormParam</a></dt>
+<dd>
+<div class="block">Defines the name of the form parameter whose value will be used
+ to initialize the value of the annotated method argument.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HeaderParam.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/HeaderParam.html" title="annotation in javax.ws.rs">HeaderParam</a></dt>
+<dd>
+<div class="block">Defines the name of the HTTP header whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/HttpMethod.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></dt>
+<dd>
+<div class="block">Specifies the name of a HTTP method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/MatrixParam.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs">MatrixParam</a></dt>
+<dd>
+<div class="block">Defines the name of the URI matrix parameter whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Path.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs">Path</a></dt>
+<dd>
+<div class="block">Defines a URI template for the resource class or method, must not
+ include matrix parameters.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/PathParam.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs">PathParam</a></dt>
+<dd>
+<div class="block">Defines the name of the URI template parameter whose value will be used
+ to initialize the value of the annotated method parameter, class field or
+ property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/Produces.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/Produces.html" title="annotation in javax.ws.rs">Produces</a></dt>
+<dd>
+<div class="block">A list of media types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/QueryParam.html#value()">value()</a></span> - Method in annotation type javax.ws.rs.<a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs">QueryParam</a></dt>
+<dd>
+<div class="block">Defines the name of the HTTP query parameter whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/CacheControl.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></dt>
+<dd>
+<div class="block">Creates a new instance of CacheControl by parsing the supplied string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Cookie.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>Cookie</code> by parsing the supplied string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/EntityTag.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>EntityTag</code> by parsing the supplied string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Link.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core">Link</a></dt>
+<dd>
+<div class="block">Simple parser to convert link header string representations into a link.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/NewCookie.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in class javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></dt>
+<dd>
+<div class="block">Creates a new instance of NewCookie by parsing the supplied string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RuntimeType.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum javax.ws.rs.<a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/AbstractMultivaluedMap.html#values()">values()</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.Family.html#values()">values()</a></span> - Static method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.Status.html#values()">values()</a></span> - Static method in enum javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/RuntimeType.html#values()">values()</a></span> - Static method in enum javax.ws.rs.<a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#variant(javax.ws.rs.core.Variant)">variant(Variant)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Set message entity representation metadata.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Variant</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">Abstraction for a resource representation variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String)">Variant(MediaType, String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">Variant(MediaType, String, String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Variant(MediaType, String, String, String, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">Variant(MediaType, Locale, String)</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core">Variant</a></dt>
+<dd>
+<div class="block">Create a new instance of Variant.</div>
+</dd>
+<dt><a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Variant.VariantListBuilder</span></a> - Class in <a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></dt>
+<dd>
+<div class="block">A builder for a list of representation variants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Variant.VariantListBuilder.html#%3Cinit%3E()">VariantListBuilder()</a></span> - Constructor for class javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></dt>
+<dd>
+<div class="block">Protected constructor, use the static <code>newInstance</code>
+ method to obtain an instance.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#variants(java.util.List)">variants(List&lt;Variant&gt;)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a Vary header that lists the available variants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/Response.ResponseBuilder.html#variants(javax.ws.rs.core.Variant...)">variants(Variant...)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></dt>
+<dd>
+<div class="block">Add a Vary header that lists the available variants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#VARY">VARY</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">HTTP/1.1 documentation</a>}.</div>
+</dd>
+</dl>
+<a id="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs"><span class="typeNameLink">WebApplicationException</span></a> - Exception in <a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></dt>
+<dd>
+<div class="block">Runtime exception for applications.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E()">WebApplicationException()</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with a default HTTP status code of 500
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(int)">WebApplicationException(int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String)">WebApplicationException(String)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message and a default HTTP status code of 500.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,int)">WebApplicationException(String, int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with a supplied message and HTTP status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable)">WebApplicationException(String, Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,int)">WebApplicationException(String, Throwable, int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message, root cause and HTTP status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response)">WebApplicationException(String, Throwable, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response.Status)">WebApplicationException(String, Throwable, Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">WebApplicationException(String, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance using the supplied message and response.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">WebApplicationException(String, Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable)">WebApplicationException(Throwable)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, default HTTP status code of 500
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,int)">WebApplicationException(Throwable, int)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response)">WebApplicationException(Throwable, Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response.Status)">WebApplicationException(Throwable, Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(javax.ws.rs.core.Response)">WebApplicationException(Response)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance using the supplied response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/WebApplicationException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status)">WebApplicationException(Response.Status)</a></span> - Constructor for exception javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></dt>
+<dd>
+<div class="block">Construct a new instance with the supplied HTTP status
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</dd>
+<dt><a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">WebTarget</span></a> - Interface in <a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></dt>
+<dd>
+<div class="block">A resource target identified by the resource URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#WILDCARD">WILDCARD</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <code>String</code> constant representing wildcard "*/*" media type .</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#WILDCARD_TYPE">WILDCARD_TYPE</a></span> - Static variable in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">A <a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="javax/ws/rs/core/MediaType.html#WILDCARD">"*/*"</a> media type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/MediaType.html#withCharset(java.lang.String)">withCharset(String)</a></span> - Method in class javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></dt>
+<dd>
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters
+ copied from the original instance and the supplied <a href="javax/ws/rs/core/MediaType.html#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/ClientBuilder.html#withConfig(javax.ws.rs.core.Configuration)">withConfig(Configuration)</a></span> - Method in class javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></dt>
+<dd>
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/StreamingOutput.html#write(java.io.OutputStream)">write(OutputStream)</a></span> - Method in interface javax.ws.rs.core.<a href="javax/ws/rs/core/StreamingOutput.html" title="interface in javax.ws.rs.core">StreamingOutput</a></dt>
+<dd>
+<div class="block">Called to write the message body.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">WriterInterceptor</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Interface for message body writer interceptors that wrap around calls
+ to <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</dd>
+<dt><a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">WriterInterceptorContext</span></a> - Interface in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></dt>
+<dd>
+<div class="block">Context class used by <a href="javax/ws/rs/ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ to intercept calls to <a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo(T, Class&lt;?&gt;, Type, Annotation[], MediaType, MultivaluedMap&lt;String, Object&gt;, OutputStream)</a></span> - Method in interface javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a></dt>
+<dd>
+<div class="block">Write a type to an HTTP message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/core/HttpHeaders.html#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></span> - Static variable in interface javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></dt>
+<dd>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>}.</div>
+</dd>
+</dl>
+<a id="I:X">
+<!--   -->
+</a>
+<h2 class="title">X</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#xhtml(T)">xhtml(T)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="javax/ws/rs/core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="javax/ws/rs/client/Entity.html#xml(T)">xml(T)</a></span> - Static method in class javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client">Entity</a></dt>
+<dd>
+<div class="block">Create an <a href="javax/ws/rs/core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:K">K</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a>&nbsp;<a href="allpackages-index.html">All&nbsp;Packages</a></div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/index.html b/apidocs/2.1.6/index.html
new file mode 100644
index 0000000..8212f31
--- /dev/null
+++ b/apidocs/2.1.6/index.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Overview (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Jakarta RESTful Web Services 2.1 API Specification </h1>
+</div>
+<div class="contentContainer">
+<div class="block"><p>Jakarta RESTful Web Services provides a foundational API to develop web services
+    following the Representational State Transfer (REST) architectural pattern.
+    This API is distributed under the <a href="resources/EFSL.html">Eclipse Foundation Specification License</a>.</p>
+
+<h2>Web resources</h2>
+
+<p>The core APIs enable developers to rapidly build Web applications in Java that are characteristic
+    of the best designed parts of the Web. The API brings in support for designing and implementing
+    Web resources and application that follow principles of
+    <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm">REST (Representational
+        State Transfer)</a> architectural style to the Java Platform.</p>
+
+<p>With this API, Java POJOs can be exposed as RESTful Web resources independent of the underlying technology
+    using a high level easy-to-use declarative annotation-based API. E.g.:</p>
+
+<pre>
+&#64;Path("widgets/{widgetid}")
+&#64;Consumes("application/widgets+xml")
+&#64;Produces("application/widgets+xml")
+public class WidgetResource {
+
+    &#64;GET
+    public String getWidget(&#64;PathParam("widgetid") String id) {
+        return getWidgetAsXml(id);
+    }
+
+    &#64;PUT
+    public void updateWidget(&#64;PathParam("widgetid") String id,
+                             Source update) {
+       updateWidgetFromXml(id, update);
+    }
+
+    ...
+}
+</pre>
+
+<h2>Web resource clients</h2>
+
+<p>The Client API is a Java based API used to access resources on the Web. It is not restricted
+    to resources implemented using the Server API. It provides a higher-level abstraction compared to a
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>plain HTTP communication API</code></a> as well as integration with the
+    API extension providers, in order to enable concise and efficient implementation of
+    reusable client-side solutions that leverage existing and well
+    established client-side implementations of HTTP-based communication.</p>
+
+<p>The Client API also encapsulates the Uniform Interface Constraint &ndash;
+    a key constraint of the REST architectural style &ndash; and associated data
+    elements as client-side Java artifacts and supports a pluggable architecture
+    by defining multiple extension points.</p>
+
+<p>Following example demonstrates a simple Client API usage scenario:</p>
+
+<pre>
+    Client client = ClientBuilder.newClient();
+
+    client.property("MyProperty", "MyValue")
+          .register(MyProvider.class)
+          .enable(MyFeature.class);
+
+    Response res = client.target("http://example.org/hello").request("text/plain").get();
+    String message = res.readEntity(String.class);
+ </pre>
+
+<h2>Provider extensions</h2>
+
+<p>Applications may provide custom extensions to the client and server runtime using the
+    common extension APIs defined in <a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a>
+    package, namely entity providers and entity provider interceptors. Additionally, request and
+    response processing chains on client as well as server side can be further customized by
+    implemening custom request and response filters - see the
+    <a href="javax/ws/rs/client/ClientRequestFilter.html">ClientRequestFilter</a>,
+    <a href="javax/ws/rs/client/ClientResponseFilter.html">ClientResponseFilter</a>,
+    <a href="javax/ws/rs/container/ContainerRequestFilter.html">ContainerRequestFilter</a>,
+    <a href="javax/ws/rs/container/ContainerResponseFilter.html">ContainerResponseFilter</a>
+    APIs.</p></div>
+</div>
+<div class="contentContainer">
+<div class="overviewSummary">
+<table>
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/package-summary.html">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/client/package-summary.html">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/container/package-summary.html">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/core/package-summary.html">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/ext/package-summary.html">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<th class="colFirst" scope="row"><a href="javax/ws/rs/sse/package-summary.html">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ApplicationPath.html b/apidocs/2.1.6/javax/ws/rs/ApplicationPath.html
new file mode 100644
index 0000000..94828cc
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ApplicationPath.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ApplicationPath (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ApplicationPath (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ApplicationPath.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type ApplicationPath" class="title">Annotation Type ApplicationPath</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+public @interface <span class="memberNameLabel">ApplicationPath</span></pre>
+<div class="block">Identifies the application path that serves as the base URI
+ for all resource URIs provided by <a href="Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>. May only be
+ applied to a subclass of <a href="core/Application.html" title="class in javax.ws.rs.core"><code>Application</code></a>.
+
+ <p>When published in a Servlet container, the value of the application path
+ may be overridden using a servlet-mapping element in the web.xml.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="core/Application.html" title="class in javax.ws.rs.core"><code>Application</code></a>, 
+<a href="Path.html" title="annotation in javax.ws.rs"><code>Path</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the base URI for all resource URIs.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the base URI for all resource URIs. A trailing '/' character will
+ be automatically appended if one is not present.
+
+ <p>The supplied value is automatically percent
+ encoded to conform to the <code>path</code> production of
+ {@link <a href="http://tools.ietf.org/html/rfc3986#section-3.3">RFC 3986 section 3.3</a>}.
+ Note that percent encoded values are allowed in the value, an
+ implementation will recognize such values and will not double
+ encode the '%' character.</p></div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ApplicationPath.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/BadRequestException.html b/apidocs/2.1.6/javax/ws/rs/BadRequestException.html
new file mode 100644
index 0000000..2882f8f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/BadRequestException.html
@@ -0,0 +1,466 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>BadRequestException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BadRequestException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BadRequestException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class BadRequestException" class="title">Class BadRequestException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.BadRequestException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">BadRequestException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating a <a href="core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.BadRequestException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BadRequestException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException()</pre>
+<div class="block">Construct a new bad client request exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BadRequestException</h4>
+<pre>public&nbsp;BadRequestException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new bad client request exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>400</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BadRequestException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/BeanParam.html b/apidocs/2.1.6/javax/ws/rs/BeanParam.html
new file mode 100644
index 0000000..bea9490
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/BeanParam.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>BeanParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BeanParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BeanParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type BeanParam" class="title">Annotation Type BeanParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">BeanParam</span></pre>
+<div class="block">The annotation that may be used to inject a custom "parameter aggregator" value object
+ into a resource class field, property or resource method parameter.
+ <p>
+ The runtime will instantiate the object and inject all it's fields and properties annotated
+ with either one of the <code>@XxxParam</code> annotation (<a href="PathParam.html" title="annotation in javax.ws.rs"><code>&#64;PathParam</code></a>,
+ <a href="FormParam.html" title="annotation in javax.ws.rs"><code>&#64;FormParam</code></a> ...) or the <a href="core/Context.html" title="annotation in javax.ws.rs.core"><code>&#64;Context</code></a>
+ annotation. For the POJO classes same instantiation and injection rules apply as in case of instantiation
+ and injection of request-scoped root resource classes.
+ </p>
+ <p>
+ For example:
+ <pre>
+ public class MyBean {
+   &#64;FormParam("myData")
+   private String data;
+
+   &#64;HeaderParam("myHeader")
+   private String header;
+
+   &#64;PathParam("id")
+   public void setResourceId(String id) {...}
+
+   ...
+ }
+
+ &#64;Path("myresources")
+ public class MyResources {
+   &#64;POST
+   &#64;Path("{id}")
+   public void post(&#64;BeanParam MyBean myBean) {...}
+
+   ...
+ }
+ </pre>
+ </p>
+ <p>
+ Because injection occurs at object creation time, use of this annotation on resource
+ class fields and bean properties is only supported for the default per-request resource
+ class lifecycle. Resource classes using other lifecycles should only use this annotation
+ on resource method parameters.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BeanParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ClientErrorException.html b/apidocs/2.1.6/javax/ws/rs/ClientErrorException.html
new file mode 100644
index 0000000..2e65488
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ClientErrorException.html
@@ -0,0 +1,609 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ClientErrorException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientErrorException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientErrorException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class ClientErrorException" class="title">Class ClientErrorException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.ClientErrorException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></code>, <code><a href="ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></code>, <code><a href="NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></code>, <code><a href="NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></code>, <code><a href="NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></code>, <code><a href="NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></code>, <code><a href="NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ClientErrorException</span>
+extends <a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">A base runtime application exception indicating a client request error
+ (HTTP <code>4xx</code> status codes).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.ClientErrorException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">ClientErrorException</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(int&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code>
+                 status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code>
+                 status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - client error status. Must be a <code>4xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code>
+                 status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientErrorException</h4>
+<pre>public&nbsp;ClientErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new client error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - client error response. Must have a status code set to a <code>4xx</code>
+                 status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#CLIENT_ERROR"><code>Response.Status.Family.CLIENT_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientErrorException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ConstrainedTo.html b/apidocs/2.1.6/javax/ws/rs/ConstrainedTo.html
new file mode 100644
index 0000000..fa98564
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ConstrainedTo.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ConstrainedTo (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConstrainedTo (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConstrainedTo.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type ConstrainedTo" class="title">Annotation Type ConstrainedTo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">ConstrainedTo</span></pre>
+<div class="block">Indicates the run-time context in which an annotated provider
+ is applicable. If a <code>@ConstrainedTo</code> annotation is not
+ present on a provider type declaration, the declared provider
+ may be used in any run-time context. If such a annotation is present,
+ the runtime will enforce the specified usage restriction.
+ <p>
+ The following example illustrates restricting a <a href="ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a>
+ provider implementation to run only as part of a <a href="RuntimeType.html#CLIENT"><code>Client run-time</code></a>:
+ </p>
+ <pre>
+  &#064;ConstrainedTo(RuntimeType.CLIENT)
+  public class MyReader implements MessageBodyReader {
+      ...
+  }
+ </pre>
+ <p>
+ The following example illustrates restricting a <a href="ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ provider implementation to run only as part of a <a href="RuntimeType.html#SERVER"><code>Server run-time</code></a>:
+ </p>
+ <pre>
+  &#064;ConstrainedTo(RuntimeType.SERVER)
+  public class MyWriterInterceptor implements WriterInterceptor {
+      ...
+  }
+ </pre>
+ <p>
+ It is a configuration error to constraint a provider implementation to
+ a run-time context in which the provider cannot be applied. In such case, the
+ runtime SHOULD inform a user about the issue and ignore the provider implementation in further
+ processing.
+ </p>
+ <p>
+ For example, the following restriction of a <a href="client/ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>ClientRequestFilter</code></a>
+ to run only as part of the server run-time would be considered invalid:
+ </p>
+ <pre>
+  // reported as invalid and ignored by the runtime
+  &#064;ConstrainedTo(RuntimeType.SERVER)
+  public class MyFilter implements ClientRequestFilter {
+      ...
+  }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Define the <a href="RuntimeType.html" title="enum in javax.ws.rs"><code>constraint type</code></a> to be placed on a provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>&nbsp;value</pre>
+<div class="block">Define the <a href="RuntimeType.html" title="enum in javax.ws.rs"><code>constraint type</code></a> to be placed on a provider.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConstrainedTo.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/Consumes.html b/apidocs/2.1.6/javax/ws/rs/Consumes.html
new file mode 100644
index 0000000..3e9aa27
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/Consumes.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Consumes (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Consumes (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Consumes.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type Consumes" class="title">Annotation Type Consumes</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Inherited</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Consumes</span></pre>
+<div class="block">Defines the media types that the methods of a resource class or
+ <a href="ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> can accept. If
+ not specified, a container will assume that any media type is acceptable.
+ Method level annotations override a class level annotation. A container
+ is responsible for ensuring that the method invoked is capable of consuming
+ the media type of the HTTP request entity body. If no such method is
+ available the container must respond with a HTTP "415 Unsupported Media Type"
+ as specified by RFC 2616.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">A list of media types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;value</pre>
+<div class="block">A list of media types. Each entry may specify a single type or consist
+ of a comma separated list of types, with any leading or trailing white-spaces
+ in a single type entry being ignored. For example:
+ <pre>
+  {"image/jpeg, image/gif ", " image/png"}
+ </pre>
+ Use of the comma-separated form allows definition of a common string constant
+ for use on multiple targets.</div>
+<dl>
+<dt>Default:</dt>
+<dd>{"*/*"}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Consumes.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/CookieParam.html b/apidocs/2.1.6/javax/ws/rs/CookieParam.html
new file mode 100644
index 0000000..751f042
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/CookieParam.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>CookieParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CookieParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CookieParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type CookieParam" class="title">Annotation Type CookieParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">CookieParam</span></pre>
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter,
+ resource class field, or resource class bean property.
+ A default value can be specified using the <a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>
+ annotation.
+
+ The type <code>T</code> of the annotated parameter, field or property must
+ either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Be <a href="core/Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a></li>
+ <li>Have a constructor that accepts a single String argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ that accepts a single String argument (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a>
+ that returns a <a href="ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a>
+ instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or
+ <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3, 4 or 5 above.
+ The resulting collection is read-only.</li>
+ </ol>
+
+ <p>Because injection occurs at object creation time, use of this annotation
+ on resource class fields and bean properties is only supported for the
+ default per-request resource class lifecycle. Resource classes using
+ other lifecycles should only use this annotation on resource method
+ parameters.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>, 
+<a href="core/Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a>, 
+<a href="core/HttpHeaders.html#getCookies()"><code>HttpHeaders.getCookies()</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the HTTP cookie whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the HTTP cookie whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CookieParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/DELETE.html b/apidocs/2.1.6/javax/ws/rs/DELETE.html
new file mode 100644
index 0000000..079d2c2
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/DELETE.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>DELETE (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DELETE (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DELETE.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type DELETE" class="title">Annotation Type DELETE</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("DELETE")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">DELETE</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DELETE.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/DefaultValue.html b/apidocs/2.1.6/javax/ws/rs/DefaultValue.html
new file mode 100644
index 0000000..09b08a9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/DefaultValue.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>DefaultValue (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultValue (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultValue.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type DefaultValue" class="title">Annotation Type DefaultValue</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">DefaultValue</span></pre>
+<div class="block">Defines the default value of request meta-data that is bound using one of the
+ following annotations:
+ <a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>,
+ <a href="QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>,
+ <a href="CookieParam.html" title="annotation in javax.ws.rs"><code>CookieParam</code></a>,
+ <a href="FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a>,
+ or <a href="HeaderParam.html" title="annotation in javax.ws.rs"><code>HeaderParam</code></a>.
+ The default value is used if the corresponding meta-data is not present in the
+ request.
+ <p>
+ If the type of the annotated parameter is <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a>,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> or <a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedSet.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>SortedSet</code></a> then the resulting collection
+ will have a single entry mapped from the supplied default value.
+ </p>
+ <p>
+ If this annotation is not used and the corresponding meta-data is not
+ present in the request, the value will be an empty collection for
+ <code>List</code>, <code>Set</code> or <code>SortedSet</code>, <code>null</code> for
+ other object types, and the Java-defined default for primitive types.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, 
+<a href="QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>, 
+<a href="FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a>, 
+<a href="HeaderParam.html" title="annotation in javax.ws.rs"><code>HeaderParam</code></a>, 
+<a href="MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>, 
+<a href="CookieParam.html" title="annotation in javax.ws.rs"><code>CookieParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">The specified default value.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">The specified default value.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DefaultValue.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/Encoded.html b/apidocs/2.1.6/javax/ws/rs/Encoded.html
new file mode 100644
index 0000000..8ef8fe0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/Encoded.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Encoded (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Encoded (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoded.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type Encoded" class="title">Annotation Type Encoded</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#CONSTRUCTOR" title="class or interface in java.lang.annotation" class="externalLink">CONSTRUCTOR</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Encoded</span></pre>
+<div class="block">Disables automatic decoding of parameter values bound using <a href="QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, <a href="FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a> or <a href="MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>.
+ Using this annotation on a method will disable decoding for all parameters.
+ Using this annotation on a class will disable decoding for all parameters of
+ all methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>, 
+<a href="MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>, 
+<a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, 
+<a href="FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Encoded.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ForbiddenException.html b/apidocs/2.1.6/javax/ws/rs/ForbiddenException.html
new file mode 100644
index 0000000..93d48a6
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ForbiddenException.html
@@ -0,0 +1,468 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ForbiddenException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ForbiddenException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ForbiddenException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class ForbiddenException" class="title">Class ForbiddenException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.ForbiddenException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ForbiddenException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating that an access to a resource requested by
+ a client has been <a href="core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a>
+ by the server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.ForbiddenException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ForbiddenException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException()</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ForbiddenException</h4>
+<pre>public&nbsp;ForbiddenException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "forbidden" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>403</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ForbiddenException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/FormParam.html b/apidocs/2.1.6/javax/ws/rs/FormParam.html
new file mode 100644
index 0000000..8dc45fc
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/FormParam.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>FormParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FormParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FormParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type FormParam" class="title">Annotation Type FormParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">FormParam</span></pre>
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body
+ to a resource method parameter. Values are URL decoded unless this is
+ disabled using the <a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a> annotation. A default value can be
+ specified using the <a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a> annotation.
+ If the request entity body is absent or is an unsupported media type, the
+ default value is used.
+
+ The type <code>T</code> of the annotated parameter must either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ that accepts a single <code>String</code> argument (see, for example,
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a>
+ that returns a <a href="ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a>
+ instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or
+ <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above.
+ The resulting collection is read-only.</li>
+ </ol>
+
+ <p>If the type is not one of the collection types listed in 5 above and the
+ form parameter is represented by multiple values then the first value (lexically)
+ of the parameter is used.</p>
+
+ <p>Note that, whilst the annotation target permits use on fields and methods,
+ this annotation is only required to be supported on resource method
+ parameters.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>, 
+<a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the form parameter whose value will be used
+ to initialize the value of the annotated method argument.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the form parameter whose value will be used
+ to initialize the value of the annotated method argument. The name is
+ specified in decoded form, any percent encoded literals within the value
+ will not be decoded and will instead be treated as literal text. E.g. if
+ the parameter name is "a b" then the value of the annotation is "a b",
+ <i>not</i> "a+b" or "a%20b".</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FormParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/GET.html b/apidocs/2.1.6/javax/ws/rs/GET.html
new file mode 100644
index 0000000..be25a5e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/GET.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>GET (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GET (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GET.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type GET" class="title">Annotation Type GET</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("GET")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">GET</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GET.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/HEAD.html b/apidocs/2.1.6/javax/ws/rs/HEAD.html
new file mode 100644
index 0000000..0aa7280
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/HEAD.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>HEAD (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HEAD (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HEAD.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type HEAD" class="title">Annotation Type HEAD</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("HEAD")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">HEAD</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HEAD.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/HeaderParam.html b/apidocs/2.1.6/javax/ws/rs/HeaderParam.html
new file mode 100644
index 0000000..68a4ab4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/HeaderParam.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>HeaderParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HeaderParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HeaderParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type HeaderParam" class="title">Annotation Type HeaderParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">HeaderParam</span></pre>
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter,
+ resource class field, or resource class bean property. A default value
+ can be specified using the <a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a> annotation.
+
+ The type <code>T</code> of the annotated parameter, field or property
+ must either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ that accepts a single
+ <code>String</code> argument (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a>
+ that returns a <a href="ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a>
+ instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or
+ <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above.
+ The resulting collection is read-only.</li>
+ </ol>
+
+ <p>If the type is not one of the collection types listed in 5 above and the
+ header parameter is represented by multiple values then the first value (lexically)
+ of the parameter is used.</p>
+
+ <p>Because injection occurs at object creation time, use of this annotation
+ on resource class fields and bean properties is only supported for the
+ default per-request resource class lifecycle. Resource classes using
+ other lifecycles should only use this annotation on resource method
+ parameters.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>, 
+<a href="core/HttpHeaders.html" title="interface in javax.ws.rs.core"><code>HttpHeaders</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the HTTP header whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the HTTP header whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property. Case insensitive.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HeaderParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/HttpMethod.html b/apidocs/2.1.6/javax/ws/rs/HttpMethod.html
new file mode 100644
index 0000000..c02cfef
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/HttpMethod.html
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>HttpMethod (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HttpMethod (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpMethod.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#annotation.type.field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#annotation.type.field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type HttpMethod" class="title">Annotation Type HttpMethod</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation" class="externalLink">ANNOTATION_TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">HttpMethod</span></pre>
+<div class="block">Associates the name of a HTTP method with an annotation. A Java method annotated
+ with a runtime annotation that is itself annotated with this annotation will
+ be used to handle HTTP requests of the indicated HTTP method. It is an error
+ for a method to be annotated with more than one annotation that is annotated
+ with <code>HttpMethod</code>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="GET.html" title="annotation in javax.ws.rs"><code>GET</code></a>, 
+<a href="POST.html" title="annotation in javax.ws.rs"><code>POST</code></a>, 
+<a href="PUT.html" title="annotation in javax.ws.rs"><code>PUT</code></a>, 
+<a href="DELETE.html" title="annotation in javax.ws.rs"><code>DELETE</code></a>, 
+<a href="PATCH.html" title="annotation in javax.ws.rs"><code>PATCH</code></a>, 
+<a href="HEAD.html" title="annotation in javax.ws.rs"><code>HEAD</code></a>, 
+<a href="OPTIONS.html" title="annotation in javax.ws.rs"><code>OPTIONS</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Fields</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DELETE">DELETE</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP DELETE method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#GET">GET</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP GET method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HEAD">HEAD</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP HEAD method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#OPTIONS">OPTIONS</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP OPTIONS method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PATCH">PATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP PATCH method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#POST">POST</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP POST method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PUT">PUT</a></span></code></th>
+<td class="colLast">
+<div class="block">HTTP PUT method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Specifies the name of a HTTP method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="GET">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GET</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;GET</pre>
+<div class="block">HTTP GET method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="POST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>POST</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;POST</pre>
+<div class="block">HTTP POST method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="PUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PUT</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;PUT</pre>
+<div class="block">HTTP PUT method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="DELETE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;DELETE</pre>
+<div class="block">HTTP DELETE method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="PATCH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PATCH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;PATCH</pre>
+<div class="block">HTTP PATCH method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="HEAD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HEAD</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;HEAD</pre>
+<div class="block">HTTP HEAD method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="OPTIONS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OPTIONS</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;OPTIONS</pre>
+<div class="block">HTTP OPTIONS method.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Specifies the name of a HTTP method. E.g. "GET".</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpMethod.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#annotation.type.field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#annotation.type.field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/InternalServerErrorException.html b/apidocs/2.1.6/javax/ws/rs/InternalServerErrorException.html
new file mode 100644
index 0000000..7ac31bb
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/InternalServerErrorException.html
@@ -0,0 +1,466 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>InternalServerErrorException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InternalServerErrorException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InternalServerErrorException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class InternalServerErrorException" class="title">Class InternalServerErrorException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ServerErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ServerErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.InternalServerErrorException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">InternalServerErrorException</span>
+extends <a href="ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></pre>
+<div class="block">A runtime exception indicating an <a href="core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server error</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.InternalServerErrorException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">InternalServerErrorException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException()</pre>
+<div class="block">Construct a new internal server error exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - internal server error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - internal server error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - internal server error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InternalServerErrorException</h4>
+<pre>public&nbsp;InternalServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new internal server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - internal server error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>500</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InternalServerErrorException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/MatrixParam.html b/apidocs/2.1.6/javax/ws/rs/MatrixParam.html
new file mode 100644
index 0000000..d7d101e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/MatrixParam.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>MatrixParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MatrixParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MatrixParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type MatrixParam" class="title">Annotation Type MatrixParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">MatrixParam</span></pre>
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter,
+ resource class field, or resource class bean property.
+ Values are URL decoded unless this is disabled using the <a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a>
+ annotation. A default value can be specified using the <a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>
+ annotation.
+ <p>
+ Note that the <code>@MatrixParam</code> <a href="#value()"><code>annotation value</code></a> refers
+ to a name of a matrix parameter that resides in the last matched path segment
+ of the <a href="Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated Java structure that injects the value of the matrix
+ parameter.
+ </p>
+ <p>
+ The type <code>T</code> of the annotated parameter, field or property must
+ either:
+ </p>
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ that accepts a single
+ <code>String</code> argument (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a>
+ that returns a <a href="ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a>
+ instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or
+ <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above.
+ The resulting collection is read-only.</li>
+ </ol>
+
+ <p>If the type is not one of the collection types listed in 5 above and the
+ matrix parameter is represented by multiple values then the first value (lexically)
+ of the parameter is used.</p>
+
+ <p>Because injection occurs at object creation time, use of this annotation
+ on resource class fields and bean properties is only supported for the
+ default per-request resource class lifecycle. Resource classes using
+ other lifecycles should only use this annotation on resource method
+ parameters.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>, 
+<a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a>, 
+<a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the URI matrix parameter whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the URI matrix parameter whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property. The name is specified in decoded form, any percent encoded
+ literals within the value will not be decoded and will instead be
+ treated as literal text. E.g. if the parameter name is "a b" then the
+ value of the annotation is "a b", <i>not</i> "a+b" or "a%20b".</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MatrixParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/NameBinding.html b/apidocs/2.1.6/javax/ws/rs/NameBinding.html
new file mode 100644
index 0000000..b9a5f00
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/NameBinding.html
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NameBinding (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NameBinding (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NameBinding.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type NameBinding" class="title">Annotation Type NameBinding</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation" class="externalLink">ANNOTATION_TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">NameBinding</span></pre>
+<div class="block">Meta-annotation used to create name binding annotations for filters
+ and interceptors.
+ <p>
+ Name binding via annotations is only supported as part of the Server API.
+ In name binding, a <i>name-binding</i> annotation is first defined using the
+ <code>@NameBinding</code> meta-annotation:
+
+ <pre>
+  &#64;Target({ ElementType.TYPE, ElementType.METHOD })
+  &#64;Retention(value = RetentionPolicy.RUNTIME)
+  <b>&#64;NameBinding</b>
+  <b>public @interface Logged</b> { }
+ </pre>
+
+ The defined name-binding annotation is then used to decorate a filter or interceptor
+ class (more than one filter or interceptor may be decorated with the same name-binding
+ annotation):
+
+ <pre>
+  <b>&#64;Logged</b>
+  public class LoggingFilter
+          implements ContainerRequestFilter, ContainerResponseFilter {
+      ...
+  }
+ </pre>
+
+ At last, the name-binding annotation is applied to the resource method(s) to which the
+ name-bound provider(s) should be bound to:
+
+ <pre>
+  &#64;Path("/")
+  public class MyResourceClass {
+      &#64;GET
+      &#64;Produces("text/plain")
+      &#64;Path("{name}")
+      <b>&#64;Logged</b>
+      public String hello(@PathParam("name") String name) {
+          return "Hello " + name;
+      }
+  }
+ </pre>
+
+ A name-binding annotation may also be attached to a custom
+ <a href="core/Application.html" title="class in javax.ws.rs.core"><code>Application</code></a> subclass. In such case a name-bound provider
+ bound by the annotation will be applied to all <a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>resource and sub-resource
+ methods</code></a> in the application:
+
+ <pre>
+  <b>&#64;Logged</b>
+  &#64;ApplicationPath("myApp")
+  public class MyApplication extends javax.ws.rs.core.Application {
+      ...
+  }
+ </pre>
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NameBinding.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/NotAcceptableException.html b/apidocs/2.1.6/javax/ws/rs/NotAcceptableException.html
new file mode 100644
index 0000000..02a0a6b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/NotAcceptableException.html
@@ -0,0 +1,468 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NotAcceptableException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotAcceptableException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAcceptableException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class NotAcceptableException" class="title">Class NotAcceptableException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.NotAcceptableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotAcceptableException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating that a client request is
+ <a href="core/Response.Status.html#NOT_ACCEPTABLE"><code>not acceptable</code></a>
+ by the server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.NotAcceptableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NotAcceptableException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException()</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotAcceptableException</h4>
+<pre>public&nbsp;NotAcceptableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "request not acceptable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>406</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAcceptableException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/NotAllowedException.html b/apidocs/2.1.6/javax/ws/rs/NotAllowedException.html
new file mode 100644
index 0000000..74577aa
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/NotAllowedException.html
@@ -0,0 +1,508 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NotAllowedException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotAllowedException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAllowedException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class NotAllowedException" class="title">Class NotAllowedException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.NotAllowedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotAllowedException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.NotAllowedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,java.lang.String...)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>allowed</code> - allowed request method.</dd>
+<dd><code>moreAllowed</code> - more allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the allowed method is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;allowed,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;moreAllowed)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                    by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>allowed</code> - allowed request method.</dd>
+<dd><code>moreAllowed</code> - more allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the allowed method is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new method not allowed exception.
+ <p>
+ Note that this constructor does not validate the presence of HTTP
+ <code>Allow</code> header. I.e. it is possible
+ to use the constructor to create a client-side exception instance
+ even for an invalid HTTP <code>405</code> response content returned from a server.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>405</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new method not allowed exception.
+ <p>
+ Note that this constructor does not validate the presence of HTTP
+ <code>Allow</code> header. I.e. it is possible
+ to use the constructor to create a client-side exception instance
+ even for an invalid HTTP <code>405</code> response content returned from a server.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>405</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>allowedMethods</code> - allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the allowed methods varargs are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;allowedMethods)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                       by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>allowedMethods</code> - allowed request methods.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the allowed methods varargs are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>405</code> or does not contain
+                                  an HTTP <code>Allow</code> header.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotAllowedException</h4>
+<pre>public&nbsp;NotAllowedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new method not allowed exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>405</code> or does not contain
+                                  an HTTP <code>Allow</code> header.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAllowedException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/NotAuthorizedException.html b/apidocs/2.1.6/javax/ws/rs/NotAuthorizedException.html
new file mode 100644
index 0000000..522f211
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/NotAuthorizedException.html
@@ -0,0 +1,568 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NotAuthorizedException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotAuthorizedException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAuthorizedException.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class NotAuthorizedException" class="title">Class NotAuthorizedException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.NotAuthorizedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotAuthorizedException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following
+ scenarios:
+ <ul>
+ <li>
+ a client did not send the required authorization credentials to access the requested resource,
+ i.e. <a href="core/HttpHeaders.html#AUTHORIZATION"><code>Authorization</code></a> HTTP header is missing
+ in the request,
+ </li>
+ <li>
+ or - in case the request already contains the HTTP <code>Authorization</code> header - then
+ the exception indicates that authorization has been refused for the credentials contained
+ in the request header.
+ </li>
+ </ul></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.NotAuthorizedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getChallenges()">getChallenges</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the list of authorization challenges associated with the exception and
+ applicable to the resource requested by the client.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>challenge</code> - authorization challenge applicable to the resource requested
+                       by the client.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the
+                       requested resource.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>challenge</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                       by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>challenge</code> - authorization challenge applicable to the resource requested
+                       by the client.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the
+                       requested resource.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>challenge</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>challenge</code> - authorization challenge applicable to the requested resource.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the
+                       requested resource.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;challenge,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;moreChallenges)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                       by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dd><code>challenge</code> - authorization challenge applicable to the requested resource.</dd>
+<dd><code>moreChallenges</code> - additional authorization challenge applicable to the
+                       requested resource.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotAuthorizedException</h4>
+<pre>public&nbsp;NotAuthorizedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                              <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not authorized" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>401</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getChallenges()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getChallenges</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getChallenges()</pre>
+<div class="block">Get the list of authorization challenges associated with the exception and
+ applicable to the resource requested by the client.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>list of authorization challenges applicable to the resource requested
+         by the client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotAuthorizedException.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/NotFoundException.html b/apidocs/2.1.6/javax/ws/rs/NotFoundException.html
new file mode 100644
index 0000000..2f9204b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/NotFoundException.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NotFoundException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotFoundException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotFoundException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class NotFoundException" class="title">Class NotFoundException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.NotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotFoundException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating a resource requested by a client was
+ <a href="core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.NotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NotFoundException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException()</pre>
+<div class="block">Construct a new "not found" exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                         <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotFoundException</h4>
+<pre>public&nbsp;NotFoundException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                         <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "not found" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>404</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotFoundException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/NotSupportedException.html b/apidocs/2.1.6/javax/ws/rs/NotSupportedException.html
new file mode 100644
index 0000000..5162a06
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/NotSupportedException.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NotSupportedException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NotSupportedException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotSupportedException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class NotSupportedException" class="title">Class NotSupportedException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.NotSupportedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NotSupportedException</span>
+extends <a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></pre>
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Sergey Beryozkin, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.NotSupportedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">NotSupportedException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException()</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                             <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NotSupportedException</h4>
+<pre>public&nbsp;NotSupportedException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                             <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new unsupported media type exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>415</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NotSupportedException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/OPTIONS.html b/apidocs/2.1.6/javax/ws/rs/OPTIONS.html
new file mode 100644
index 0000000..454e52c
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/OPTIONS.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>OPTIONS (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OPTIONS (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OPTIONS.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type OPTIONS" class="title">Annotation Type OPTIONS</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("OPTIONS")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">OPTIONS</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OPTIONS.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/PATCH.html b/apidocs/2.1.6/javax/ws/rs/PATCH.html
new file mode 100644
index 0000000..8ed9eba
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/PATCH.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>PATCH (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PATCH (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PATCH.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type PATCH" class="title">Annotation Type PATCH</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("PATCH")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PATCH</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek (pavel.bucek at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PATCH.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/POST.html b/apidocs/2.1.6/javax/ws/rs/POST.html
new file mode 100644
index 0000000..86bd178
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/POST.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>POST (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="POST (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/POST.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type POST" class="title">Annotation Type POST</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("POST")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">POST</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/POST.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/PUT.html b/apidocs/2.1.6/javax/ws/rs/PUT.html
new file mode 100644
index 0000000..e79383c
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/PUT.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>PUT (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PUT (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PUT.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type PUT" class="title">Annotation Type PUT</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="HttpMethod.html" title="annotation in javax.ws.rs">@HttpMethod</a>("PUT")
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PUT</span></pre>
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PUT.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/Path.html b/apidocs/2.1.6/javax/ws/rs/Path.html
new file mode 100644
index 0000000..7b2dd9a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/Path.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Path (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Path (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Path.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type Path" class="title">Annotation Type Path</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Path</span></pre>
+<div class="block">Identifies the URI path that a resource class or class method will serve
+ requests for.
+
+ <p>Paths are relative. For an annotated class the base URI is the
+ application path, see <a href="ApplicationPath.html" title="annotation in javax.ws.rs"><code>ApplicationPath</code></a>. For an annotated
+ method the base URI is the
+ effective URI of the containing class. For the purposes of absolutizing a
+ path against the base URI , a leading '/' in a path is
+ ignored and base URIs are treated as if they ended in '/'. E.g.:</p>
+
+ <pre>&#64;Path("widgets")
+ public class WidgetsResource {
+  &#64;GET
+  String getList() {...}
+
+  &#64;GET &#64;Path("{id}")
+  String getWidget(&#64;PathParam("id") String id) {...}
+ }</pre>
+
+ <p>In the above, if the application path is
+ <code>catalogue</code> and the application is deployed at
+ <code>http://example.com/</code>, then <code>GET</code> requests for
+ <code>http://example.com/catalogue/widgets</code> will be handled by the
+ <code>getList</code> method while requests for
+ <code>http://example.com/catalogue/widgets/<i>nnn</i></code> (where
+ <code><i>nnn</i></code> is some value) will be handled by the
+ <code>getWidget</code> method. The same would apply if the value of either
+ <code>@Path</code> annotation started with '/'.</p>
+
+ <p>Classes and methods may also be annotated with <a href="Consumes.html" title="annotation in javax.ws.rs"><code>Consumes</code></a> and
+ <a href="Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a> to filter the requests they will receive.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Consumes.html" title="annotation in javax.ws.rs"><code>Consumes</code></a>, 
+<a href="Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a>, 
+<a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines a URI template for the resource class or method, must not
+ include matrix parameters.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines a URI template for the resource class or method, must not
+ include matrix parameters.
+
+ <p>Embedded template parameters are allowed and are of the form:</p>
+
+ <pre> param = "{" *WSP name *WSP [ ":" *WSP regex *WSP ] "}"
+ name = (ALPHA / DIGIT / "_")*(ALPHA / DIGIT / "." / "_" / "-" ) ; \w[\w\.-]*
+ regex = *( nonbrace / "{" *nonbrace "}" ) ; where nonbrace is any char other than "{" and "}"</pre>
+
+ <p>See {@link <a href="http://tools.ietf.org/html/rfc5234">RFC 5234</a>}
+ for a description of the syntax used above and the expansions of
+ <code>WSP</code>, <code>ALPHA</code> and <code>DIGIT</code>. In the above <code>name</code>
+ is the template parameter name and the optional <code>regex</code> specifies
+ the contents of the capturing group for the parameter. If <code>regex</code>
+ is not supplied then a default value of <code>[^/]+</code> which terminates at
+ a path segment boundary, is used. Matching of request URIs to URI
+ templates is performed against encoded path values and implementations
+ will not escape literal characters in regex automatically, therefore any
+ literals in <code>regex</code> should be escaped by the author according to
+ the rules of
+ {@link <a href="http://tools.ietf.org/html/rfc3986#section-3.3">RFC 3986 section 3.3</a>}.
+ Caution is recommended in the use of <code>regex</code>, incorrect use can
+ lead to a template parameter matching unexpected URI paths. See
+ {@link <a href="http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html">Pattern</a>}
+ for further information on the syntax of regular expressions.
+ Values of template parameters may be extracted using <a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>.</p>
+
+ <p>The literal part of the supplied value (those characters
+ that are not part of a template parameter) is automatically percent
+ encoded to conform to the <code>path</code> production of
+ {@link <a href="http://tools.ietf.org/html/rfc3986#section-3.3">RFC 3986 section 3.3</a>}.
+ Note that percent encoded values are allowed in the literal part of the
+ value, an implementation will recognize such values and will not double
+ encode the '%' character.</p></div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Path.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/PathParam.html b/apidocs/2.1.6/javax/ws/rs/PathParam.html
new file mode 100644
index 0000000..4b580ce
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/PathParam.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>PathParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type PathParam" class="title">Annotation Type PathParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PathParam</span></pre>
+<div class="block">Binds the value of a URI template parameter or a path segment
+ containing the template parameter to a resource method parameter, resource
+ class field, or resource class
+ bean property. The value is URL decoded unless this
+ is disabled using the <a href="Encoded.html" title="annotation in javax.ws.rs"><code>&#64;Encoded</code></a> annotation.
+ A default value can be specified using the <a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>&#64;DefaultValue</code></a>
+ annotation.
+
+ The type of the annotated parameter, field or property must either:
+ <ul>
+ <li>Be <a href="core/PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>, the value will be the final
+ segment of the matching part of the path.
+ See <a href="core/UriInfo.html" title="interface in javax.ws.rs.core"><code>UriInfo</code></a> for a means of retrieving all request
+ path segments.</li>
+ <li>Be <code>List&lt;javax.ws.rs.core.PathSegment&gt;</code>, the
+ value will be a list of <code>PathSegment</code> corresponding to the path
+ segment(s) that matched the named template parameter.
+ See <a href="core/UriInfo.html" title="interface in javax.ws.rs.core"><code>UriInfo</code></a> for a means of retrieving all request
+ path segments.</li>
+ <li>Be a primitive type.</li>
+ <li>Have a constructor that accepts a single String argument.</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ that accepts a single
+ String argument (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>).</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a>
+ that returns a <a href="ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a>
+ instance capable of a "from string" conversion for the type.</li>
+ </ul>
+
+ <p>The injected value corresponds to the latest use (in terms of scope) of
+ the path parameter. E.g. if a class and a sub-resource method are both
+ annotated with a <a href="Path.html" title="annotation in javax.ws.rs"><code>&#64;Path</code></a> containing the same URI template
+ parameter, use of <code>@PathParam</code> on a sub-resource method parameter
+ will bind the value matching URI template parameter in the method's
+ <code>@Path</code> annotation.</p>
+
+ <p>Because injection occurs at object creation time, use of this annotation
+ on resource class fields and bean properties is only supported for the
+ default per-request resource class lifecycle. Resource classes using
+ other lifecycles should only use this annotation on resource method
+ parameters.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a>, 
+<a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>, 
+<a href="core/PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>, 
+<a href="core/UriInfo.html" title="interface in javax.ws.rs.core"><code>UriInfo</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the URI template parameter whose value will be used
+ to initialize the value of the annotated method parameter, class field or
+ property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the URI template parameter whose value will be used
+ to initialize the value of the annotated method parameter, class field or
+ property. See <a href="Path.html#value()"><code>Path.value()</code></a> for a description of the syntax of
+ template parameters.
+
+ <p>E.g. a class annotated with: <code>@Path("widgets/{id}")</code>
+ can have methods annotated whose arguments are annotated
+ with <code>@PathParam("id")</code>.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/Priorities.html b/apidocs/2.1.6/javax/ws/rs/Priorities.html
new file mode 100644
index 0000000..11b67bd
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/Priorities.html
@@ -0,0 +1,357 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Priorities (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Priorities (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Priorities.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class Priorities" class="title">Class Priorities</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.Priorities</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public final class <span class="typeNameLabel">Priorities</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A collection of built-in priority constants for the components that are supposed to be
+ ordered based on their <code>javax.annotation.Priority</code> class-level annotation value when used
+ or applied by the runtime.
+ <p>
+ For example, filters and interceptors are grouped in chains for each of the message
+ processing extension points: Pre, PreMatch, Post as well as ReadFrom and WriteTo.
+ Each of these chains is sorted based on priorities which are represented as integer numbers.
+ All chains, except Post, are sorted in ascending order; the lower the number the higher the priority.
+ The Post filter chain is sorted in descending order to ensure that response filters are executed in
+ <em>reverse order</em>.
+ </p>
+ <p>
+ Components that belong to the same priority class (same integer value) are executed in an
+ implementation-defined manner. By default, when the <code>@Priority</code> annotation is absent on a component,
+ for which a priority should be applied, the <a href="#USER"><code>USER</code></a> priority value is used.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHENTICATION">AUTHENTICATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Security authentication filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHORIZATION">AUTHORIZATION</a></span></code></th>
+<td class="colLast">
+<div class="block">Security authorization filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ENTITY_CODER">ENTITY_CODER</a></span></code></th>
+<td class="colLast">
+<div class="block">Message encoder or decoder filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HEADER_DECORATOR">HEADER_DECORATOR</a></span></code></th>
+<td class="colLast">
+<div class="block">Header decorator filter/interceptor priority.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#USER">USER</a></span></code></th>
+<td class="colLast">
+<div class="block">User-level filter/interceptor priority.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="AUTHENTICATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHENTICATION</h4>
+<pre>public static final&nbsp;int AUTHENTICATION</pre>
+<div class="block">Security authentication filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.ws.rs.Priorities.AUTHENTICATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="AUTHORIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHORIZATION</h4>
+<pre>public static final&nbsp;int AUTHORIZATION</pre>
+<div class="block">Security authorization filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.ws.rs.Priorities.AUTHORIZATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="HEADER_DECORATOR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HEADER_DECORATOR</h4>
+<pre>public static final&nbsp;int HEADER_DECORATOR</pre>
+<div class="block">Header decorator filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.ws.rs.Priorities.HEADER_DECORATOR">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ENTITY_CODER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENTITY_CODER</h4>
+<pre>public static final&nbsp;int ENTITY_CODER</pre>
+<div class="block">Message encoder or decoder filter/interceptor priority.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.ws.rs.Priorities.ENTITY_CODER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="USER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>USER</h4>
+<pre>public static final&nbsp;int USER</pre>
+<div class="block">User-level filter/interceptor priority.
+
+ This value is also used as a default priority for application-supplied providers.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../constant-values.html#javax.ws.rs.Priorities.USER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Priorities.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ProcessingException.html b/apidocs/2.1.6/javax/ws/rs/ProcessingException.html
new file mode 100644
index 0000000..fa8a18a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ProcessingException.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ProcessingException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProcessingException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProcessingException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class ProcessingException" class="title">Class ProcessingException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.ProcessingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ProcessingException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
+<div class="block">A base runtime processing exception.
+
+ The exception of this type is thrown during HTTP request or response processing,
+ to signal a runtime processing failure. Typical classes of failures covered by
+ <code>ProcessingException</code> include
+ <ul>
+ <li>failures in filter or interceptor chain execution,</li>
+ <li>errors caused by missing message body readers or writers for the particular Java type
+ and media type combinations,</li>
+ <li>propagated <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>IO exceptions</code></a> thrown by
+ entity <a href="ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>readers</code></a> and <a href="ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>writers</code></a>
+ during entity serialization and de-serialization.</li>
+ </ul>
+ as well as any other runtime processing errors.
+ The exception message or nested <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a>
+ cause SHOULD contain additional information about the reason of the processing
+ failure.
+ <p>
+ Note that the exception is used to indicate (internal) processing errors.
+ It is not used to indicate HTTP error response states. A HTTP error response is
+ represented by a <a href="WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> class or one of it's
+ sub-classes.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.ProcessingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ProcessingException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">ProcessingException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">ProcessingException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime processing exception with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcessingException</h4>
+<pre>public&nbsp;ProcessingException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new runtime processing exception with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).
+ This constructor is useful for runtime exceptions that are little more
+ than wrappers for other throwables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value is permitted,
+              and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProcessingException</h4>
+<pre>public&nbsp;ProcessingException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message and cause.
+ <p/>
+ Note that the detail message associated with <code>cause</code> is <i>not</i>
+ automatically incorporated in this runtime exception's detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value is permitted,
+                and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProcessingException</h4>
+<pre>public&nbsp;ProcessingException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message. The cause is not initialized, and may subsequently be initialized
+ by a call to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink"><code>Throwable.initCause(java.lang.Throwable)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProcessingException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/Produces.html b/apidocs/2.1.6/javax/ws/rs/Produces.html
new file mode 100644
index 0000000..c1aba3a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/Produces.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Produces (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Produces (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Produces.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type Produces" class="title">Annotation Type Produces</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Inherited.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Inherited</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Produces</span></pre>
+<div class="block">Defines the media type(s) that the methods of a resource class or
+ <a href="ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> can produce.
+ If not specified then a container will assume that any type can be produced.
+ Method level annotations override a class level annotation. A container
+ is responsible for ensuring that the method invoked is capable of producing
+ one of the media types requested in the HTTP request. If no such method is
+ available the container must respond with a HTTP "406 Not Acceptable" as
+ specified by RFC 2616.
+
+ <p>A method for which there is a single-valued <code>@Produces</code>
+ is not required to set the media type of representations that it produces:
+ the container will use the value of the <code>@Produces</code> when
+ sending a response.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.optional.element.summary">
+<!--   -->
+</a>
+<h3>Optional Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Optional Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">A list of media types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;value</pre>
+<div class="block">A list of media types. Each entry may specify a single type or consist
+ of a comma separated list of types, with any leading or trailing white-spaces
+ in a single type entry being ignored. For example:
+ <pre>
+  {"image/jpeg, image/gif ", " image/png"}
+ </pre>
+ Use of the comma-separated form allows definition of a common string constant
+ for use on multiple targets.</div>
+<dl>
+<dt>Default:</dt>
+<dd>{"*/*"}</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Produces.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/QueryParam.html b/apidocs/2.1.6/javax/ws/rs/QueryParam.html
new file mode 100644
index 0000000..f6681a1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/QueryParam.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>QueryParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="QueryParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/QueryParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Annotation Type QueryParam" class="title">Annotation Type QueryParam</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">QueryParam</span></pre>
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter,
+ resource class field, or resource class bean property.
+ Values are URL decoded unless this is disabled using the <a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a>
+ annotation. A default value can be specified using the <a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>
+ annotation.
+
+ The type <code>T</code> of the annotated parameter, field or property must
+ either:
+ <ol>
+ <li>Be a primitive type</li>
+ <li>Have a constructor that accepts a single <code>String</code> argument</li>
+ <li>Have a static method named <code>valueOf</code> or <code>fromString</code>
+ that accepts a single
+ <code>String</code> argument (see, for example, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#valueOf(java.lang.String)" title="class or interface in java.lang" class="externalLink"><code>Integer.valueOf(String)</code></a>)</li>
+ <li>Have a registered implementation of <a href="ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a>
+ that returns a <a href="ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a>
+ instance capable of a "from string" conversion for the type.</li>
+ <li>Be <code>List&lt;T&gt;</code>, <code>Set&lt;T&gt;</code> or
+ <code>SortedSet&lt;T&gt;</code>, where <code>T</code> satisfies 2, 3 or 4 above.
+ The resulting collection is read-only.</li>
+ </ol>
+
+ <p>If the type is not one of the collection types listed in 5 above and the
+ query parameter is represented by multiple values then the first value (lexically)
+ of the parameter is used.</p>
+
+ <p>Because injection occurs at object creation time, use of this annotation
+ on resource class fields and bean properties is only supported for the
+ default per-request resource class lifecycle. Resource classes using
+ other lifecycles should only use this annotation on resource method
+ parameters.</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="DefaultValue.html" title="annotation in javax.ws.rs"><code>DefaultValue</code></a>, 
+<a href="Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a>, 
+<a href="core/UriInfo.html#getQueryParameters()"><code>UriInfo.getQueryParameters()</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Required Element</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#value()">value</a></span></code></th>
+<td class="colLast">
+<div class="block">Defines the name of the HTTP query parameter whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a id="value()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value</pre>
+<div class="block">Defines the name of the HTTP query parameter whose value will be used
+ to initialize the value of the annotated method argument, class field or
+ bean property. The name is specified in decoded form, any percent encoded
+ literals within the value will not be decoded and will instead be
+ treated as literal text. E.g. if the parameter name is "a b" then the
+ value of the annotation is "a b", <i>not</i> "a+b" or "a%20b".</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/QueryParam.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/RedirectionException.html b/apidocs/2.1.6/javax/ws/rs/RedirectionException.html
new file mode 100644
index 0000000..826f285
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/RedirectionException.html
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>RedirectionException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RedirectionException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectionException.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class RedirectionException" class="title">Class RedirectionException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.RedirectionException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">RedirectionException</span>
+extends <a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">A runtime application exception indicating a request redirection
+ (HTTP <code>3xx</code> status codes).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.RedirectionException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.net.URI)">RedirectionException</a></span>&#8203;(int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the redirection response location.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response.Status,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response.Status,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - redirection status. Must be a <code>3xx</code> redirection code.</dd>
+<dd><code>location</code> - redirection URI placed into the response <code>Location</code> header.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - redirection response. Must have a status code set to a <code>3xx</code>
+                 redirection code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RedirectionException</h4>
+<pre>public&nbsp;RedirectionException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new redirection exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - redirection response. Must have a status code set to a <code>3xx</code>
+                 redirection code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#REDIRECTION"><code>Response.Status.Family.REDIRECTION</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the redirection response location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>redirection response location.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectionException.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/RuntimeType.html b/apidocs/2.1.6/javax/ws/rs/RuntimeType.html
new file mode 100644
index 0000000..15e50d7
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/RuntimeType.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>RuntimeType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RuntimeType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"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";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeType.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Enum RuntimeType" class="title">Enum RuntimeType</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.RuntimeType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>&gt;</code>, <code>java.lang.constant.Constable</code></dd>
+</dl>
+<hr>
+<pre>public enum <span class="typeNameLabel">RuntimeType</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>&gt;</pre>
+<div class="block">Enumeration of runtime types.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">E</a>&gt;&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLIENT">CLIENT</a></span></code></th>
+<td class="colLast">
+<div class="block">The client run-time.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVER">SERVER</a></span></code></th>
+<td class="colLast">
+<div class="block">The server run-time.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static <a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>static <a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#describeConstable()" title="class or interface in java.lang" class="externalLink">describeConstable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">Object</a></h3>
+<code><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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="CLIENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT</h4>
+<pre>public static final&nbsp;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a> CLIENT</pre>
+<div class="block">The client run-time.</div>
+</li>
+</ul>
+<a id="SERVER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SERVER</h4>
+<pre>public static final&nbsp;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a> SERVER</pre>
+<div class="block">The server run-time.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeType.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ServerErrorException.html b/apidocs/2.1.6/javax/ws/rs/ServerErrorException.html
new file mode 100644
index 0000000..c7e4e1e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ServerErrorException.html
@@ -0,0 +1,609 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ServerErrorException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServerErrorException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerErrorException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class ServerErrorException" class="title">Class ServerErrorException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.ServerErrorException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></code>, <code><a href="ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ServerErrorException</span>
+extends <a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">A base runtime application exception indicating a server error
+ (HTTP <code>5xx</code> status codes).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.ServerErrorException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">ServerErrorException</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    int&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(int&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code>
+                 status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code>
+                 status code.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is <code>null</code> or is not from
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code
+                                  family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            int&nbsp;status,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - server error status. Must be a <code>5xx</code> status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code is not a valid HTTP status code or
+                                  if it is not from the <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a>
+                                  status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code>
+                 status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServerErrorException</h4>
+<pre>public&nbsp;ServerErrorException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new server error exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - server error response. Must have a status code set to a <code>5xx</code>
+                 status code.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the response status code is not from the
+                                  <a href="core/Response.Status.Family.html#SERVER_ERROR"><code>Response.Status.Family.SERVER_ERROR</code></a> status code family.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServerErrorException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ServiceUnavailableException.html b/apidocs/2.1.6/javax/ws/rs/ServiceUnavailableException.html
new file mode 100644
index 0000000..9c44a49
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ServiceUnavailableException.html
@@ -0,0 +1,721 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ServiceUnavailableException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ServiceUnavailableException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceUnavailableException.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class ServiceUnavailableException" class="title">Class ServiceUnavailableException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="ServerErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ServerErrorException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.ServiceUnavailableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ServiceUnavailableException</span>
+extends <a href="ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></pre>
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.ServiceUnavailableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ServiceUnavailableException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information
+ specified for the failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Long)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Long,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information
+ specified for the failed request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Long)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Date)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with a date specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Date)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Date,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception with a date specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRetryTime(java.util.Date)">getRetryTime</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;requestTime)</code></th>
+<td class="colLast">
+<div class="block">Get the retry time for the failed request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasRetryAfter()">hasRetryAfter</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the underlying response contains the information on when is it
+ possible to <a href="core/HttpHeaders.html#RETRY_AFTER"><code>retry the request</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></h3>
+<code><a href="WebApplicationException.html#getResponse()">getResponse</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException()</pre>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information
+ specified for the failed request.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new "service unavailable" exception without any "Retry-After" information
+ specified for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                   by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                   by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Date,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with a date specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.util.Date,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with a date specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                   by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - a date/time after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Long,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Long,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;retryAfter,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception with an interval specifying
+ the "Retry-After" information for the failed request and an underlying
+ request failure cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                   by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>retryAfter</code> - decimal interval in seconds after which the failed request may be retried.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ServiceUnavailableException</h4>
+<pre>public&nbsp;ServiceUnavailableException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new "service unavailable" exception.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - error response.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the status code set in the response
+                                  is not HTTP <code>503</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="hasRetryAfter()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasRetryAfter</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;hasRetryAfter()</pre>
+<div class="block">Check if the underlying response contains the information on when is it
+ possible to <a href="core/HttpHeaders.html#RETRY_AFTER"><code>retry the request</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> in case the retry time is specified in the underlying
+         response, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRetryTime(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRetryTime</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getRetryTime&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;requestTime)</pre>
+<div class="block">Get the retry time for the failed request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestTime</code> - time of sending the original request that may be used to compute
+                    the retry time (in case the retry time information specified as
+                    a decimal interval in seconds).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>time when the request may be retried or <code>null</code> if there is no retry
+         information available.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>requestTime</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ServiceUnavailableException.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/WebApplicationException.html b/apidocs/2.1.6/javax/ws/rs/WebApplicationException.html
new file mode 100644
index 0000000..9811347
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/WebApplicationException.html
@@ -0,0 +1,735 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>WebApplicationException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebApplicationException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebApplicationException.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs</a></div>
+<h2 title="Class WebApplicationException" class="title">Class WebApplicationException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.WebApplicationException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></code>, <code><a href="RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></code>, <code><a href="ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">WebApplicationException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
+<div class="block">Runtime exception for applications.
+ <p>
+ This exception may be thrown by a resource method, provider or
+ <a href="core/StreamingOutput.html" title="interface in javax.ws.rs.core"><code>StreamingOutput</code></a> implementation if a specific
+ HTTP error response needs to be produced. Only effective if thrown prior to
+ the response being committed.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#javax.ws.rs.WebApplicationException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">WebApplicationException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a default HTTP status code of 500
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">WebApplicationException</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message and a default HTTP status code of 500.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,int)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a supplied message and HTTP status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,int)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and HTTP status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied message and response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, default HTTP status code of 500
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,int)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied HTTP status
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException()</pre>
+<div class="block">Construct a new instance with a default HTTP status code of 500
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new instance with the supplied message and a default HTTP status code of 500.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance using the supplied response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response that will be returned to the client, a value
+                 of null will be replaced with an internal server error response (status
+                 code 500).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance using the supplied message and response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - the response that will be returned to the client, a value
+                 of null will be replaced with an internal server error response (status
+                 code 500).</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(int&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               int&nbsp;status)</pre>
+<div class="block">Construct a new instance with a supplied message and HTTP status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied HTTP status
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new instance with the supplied root cause, default HTTP status code of 500
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance with the supplied root cause, response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response that will be returned to the client,
+                 a value of null will be replaced with an internal server error
+                 response (status code 500).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                 by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>response</code> - the response that will be returned to the client,
+                 a value of null will be replaced with an internal server error
+                 response (status code 500).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               int&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               int&nbsp;status)</pre>
+<div class="block">Construct a new instance with the supplied message, root cause and HTTP status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable,javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)
+                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WebApplicationException</h4>
+<pre>public&nbsp;WebApplicationException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                               <a href="core/Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)
+                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>status</code> - the HTTP status code that will be returned to the client.</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code></dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResponse()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResponse</h4>
+<pre class="methodSignature">public&nbsp;<a href="core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;getResponse()</pre>
+<div class="block">Get the HTTP response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the HTTP response.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebApplicationException.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ApplicationPath.html b/apidocs/2.1.6/javax/ws/rs/class-use/ApplicationPath.html
new file mode 100644
index 0000000..4ab31f3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ApplicationPath.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ApplicationPath (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ApplicationPath (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ApplicationPath.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ApplicationPath" class="title">Uses of Class<br>javax.ws.rs.ApplicationPath</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ApplicationPath</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ApplicationPath.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/BadRequestException.html b/apidocs/2.1.6/javax/ws/rs/class-use/BadRequestException.html
new file mode 100644
index 0000000..5f4a08c
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/BadRequestException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.BadRequestException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.BadRequestException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BadRequestException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.BadRequestException" class="title">Uses of Class<br>javax.ws.rs.BadRequestException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.BadRequestException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BadRequestException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/BeanParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/BeanParam.html
new file mode 100644
index 0000000..e0a129c
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/BeanParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.BeanParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.BeanParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BeanParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.BeanParam" class="title">Uses of Class<br>javax.ws.rs.BeanParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.BeanParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../BeanParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ClientErrorException.html b/apidocs/2.1.6/javax/ws/rs/class-use/ClientErrorException.html
new file mode 100644
index 0000000..6d11683
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ClientErrorException.html
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ClientErrorException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ClientErrorException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientErrorException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ClientErrorException" class="title">Uses of Class<br>javax.ws.rs.ClientErrorException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> in <a href="../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subclasses of <a href="../ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> in <a href="../package-summary.html">javax.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a <a href="../core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that an access to a resource requested by
+ a client has been <a href="../core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a>
+ by the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that a client request is
+ <a href="../core/Response.Status.html#NOT_ACCEPTABLE"><code>not acceptable</code></a>
+ by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="../core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following
+ scenarios:
+ 
+ 
+ a client did not send the required authorization credentials to access the requested resource,
+ i.e.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a resource requested by a client was
+ <a href="../core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="../core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientErrorException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ConstrainedTo.html b/apidocs/2.1.6/javax/ws/rs/class-use/ConstrainedTo.html
new file mode 100644
index 0000000..fddaf29
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ConstrainedTo.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ConstrainedTo (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ConstrainedTo (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConstrainedTo.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ConstrainedTo" class="title">Uses of Class<br>javax.ws.rs.ConstrainedTo</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ConstrainedTo</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConstrainedTo.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/Consumes.html b/apidocs/2.1.6/javax/ws/rs/class-use/Consumes.html
new file mode 100644
index 0000000..e4d182a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/Consumes.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.Consumes (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.Consumes (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Consumes.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.Consumes" class="title">Uses of Class<br>javax.ws.rs.Consumes</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.Consumes</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Consumes.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/CookieParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/CookieParam.html
new file mode 100644
index 0000000..1706932
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/CookieParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.CookieParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.CookieParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CookieParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.CookieParam" class="title">Uses of Class<br>javax.ws.rs.CookieParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.CookieParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CookieParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/DELETE.html b/apidocs/2.1.6/javax/ws/rs/class-use/DELETE.html
new file mode 100644
index 0000000..21d48d5
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/DELETE.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.DELETE (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.DELETE (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DELETE.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.DELETE" class="title">Uses of Class<br>javax.ws.rs.DELETE</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.DELETE</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DELETE.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/DefaultValue.html b/apidocs/2.1.6/javax/ws/rs/class-use/DefaultValue.html
new file mode 100644
index 0000000..0d09a90
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/DefaultValue.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.DefaultValue (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.DefaultValue (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultValue.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.DefaultValue" class="title">Uses of Class<br>javax.ws.rs.DefaultValue</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.DefaultValue</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DefaultValue.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/Encoded.html b/apidocs/2.1.6/javax/ws/rs/class-use/Encoded.html
new file mode 100644
index 0000000..d5789cf
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/Encoded.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.Encoded (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.Encoded (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoded.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.Encoded" class="title">Uses of Class<br>javax.ws.rs.Encoded</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.Encoded</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Encoded.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ForbiddenException.html b/apidocs/2.1.6/javax/ws/rs/class-use/ForbiddenException.html
new file mode 100644
index 0000000..fa75d4d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ForbiddenException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ForbiddenException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ForbiddenException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ForbiddenException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ForbiddenException" class="title">Uses of Class<br>javax.ws.rs.ForbiddenException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ForbiddenException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ForbiddenException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/FormParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/FormParam.html
new file mode 100644
index 0000000..a75b30b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/FormParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.FormParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.FormParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FormParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.FormParam" class="title">Uses of Class<br>javax.ws.rs.FormParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.FormParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FormParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/GET.html b/apidocs/2.1.6/javax/ws/rs/class-use/GET.html
new file mode 100644
index 0000000..e908fe9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/GET.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.GET (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.GET (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GET.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.GET" class="title">Uses of Class<br>javax.ws.rs.GET</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.GET</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GET.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/HEAD.html b/apidocs/2.1.6/javax/ws/rs/class-use/HEAD.html
new file mode 100644
index 0000000..e1f48a8
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/HEAD.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.HEAD (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.HEAD (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HEAD.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.HEAD" class="title">Uses of Class<br>javax.ws.rs.HEAD</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.HEAD</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HEAD.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/HeaderParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/HeaderParam.html
new file mode 100644
index 0000000..798bd1b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/HeaderParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.HeaderParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.HeaderParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HeaderParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.HeaderParam" class="title">Uses of Class<br>javax.ws.rs.HeaderParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.HeaderParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HeaderParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/HttpMethod.html b/apidocs/2.1.6/javax/ws/rs/class-use/HttpMethod.html
new file mode 100644
index 0000000..2ed8820
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/HttpMethod.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.HttpMethod (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.HttpMethod (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpMethod.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.HttpMethod" class="title">Uses of Class<br>javax.ws.rs.HttpMethod</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a> in <a href="../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="../package-summary.html">javax.ws.rs</a> with annotations of type <a href="../HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../DELETE.html" title="annotation in javax.ws.rs">DELETE</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../GET.html" title="annotation in javax.ws.rs">GET</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../HEAD.html" title="annotation in javax.ws.rs">HEAD</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../OPTIONS.html" title="annotation in javax.ws.rs">OPTIONS</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PATCH.html" title="annotation in javax.ws.rs">PATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../POST.html" title="annotation in javax.ws.rs">POST</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../PUT.html" title="annotation in javax.ws.rs">PUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpMethod.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/InternalServerErrorException.html b/apidocs/2.1.6/javax/ws/rs/class-use/InternalServerErrorException.html
new file mode 100644
index 0000000..881a4f0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/InternalServerErrorException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.InternalServerErrorException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.InternalServerErrorException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InternalServerErrorException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.InternalServerErrorException" class="title">Uses of Class<br>javax.ws.rs.InternalServerErrorException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.InternalServerErrorException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InternalServerErrorException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/MatrixParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/MatrixParam.html
new file mode 100644
index 0000000..a86b251
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/MatrixParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.MatrixParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.MatrixParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MatrixParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.MatrixParam" class="title">Uses of Class<br>javax.ws.rs.MatrixParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.MatrixParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MatrixParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/NameBinding.html b/apidocs/2.1.6/javax/ws/rs/class-use/NameBinding.html
new file mode 100644
index 0000000..34aea09
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/NameBinding.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.NameBinding (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.NameBinding (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NameBinding.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.NameBinding" class="title">Uses of Class<br>javax.ws.rs.NameBinding</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.NameBinding</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NameBinding.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/NotAcceptableException.html b/apidocs/2.1.6/javax/ws/rs/class-use/NotAcceptableException.html
new file mode 100644
index 0000000..8356707
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/NotAcceptableException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.NotAcceptableException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.NotAcceptableException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAcceptableException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.NotAcceptableException" class="title">Uses of Class<br>javax.ws.rs.NotAcceptableException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.NotAcceptableException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAcceptableException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/NotAllowedException.html b/apidocs/2.1.6/javax/ws/rs/class-use/NotAllowedException.html
new file mode 100644
index 0000000..7e28664
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/NotAllowedException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.NotAllowedException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.NotAllowedException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAllowedException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.NotAllowedException" class="title">Uses of Class<br>javax.ws.rs.NotAllowedException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.NotAllowedException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAllowedException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/NotAuthorizedException.html b/apidocs/2.1.6/javax/ws/rs/class-use/NotAuthorizedException.html
new file mode 100644
index 0000000..8b0196b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/NotAuthorizedException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.NotAuthorizedException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.NotAuthorizedException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAuthorizedException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.NotAuthorizedException" class="title">Uses of Class<br>javax.ws.rs.NotAuthorizedException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.NotAuthorizedException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotAuthorizedException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/NotFoundException.html b/apidocs/2.1.6/javax/ws/rs/class-use/NotFoundException.html
new file mode 100644
index 0000000..a600128
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/NotFoundException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.NotFoundException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.NotFoundException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotFoundException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.NotFoundException" class="title">Uses of Class<br>javax.ws.rs.NotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.NotFoundException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotFoundException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/NotSupportedException.html b/apidocs/2.1.6/javax/ws/rs/class-use/NotSupportedException.html
new file mode 100644
index 0000000..ea7a463
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/NotSupportedException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.NotSupportedException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.NotSupportedException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotSupportedException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.NotSupportedException" class="title">Uses of Class<br>javax.ws.rs.NotSupportedException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.NotSupportedException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NotSupportedException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/OPTIONS.html b/apidocs/2.1.6/javax/ws/rs/class-use/OPTIONS.html
new file mode 100644
index 0000000..e815276
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/OPTIONS.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.OPTIONS (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.OPTIONS (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OPTIONS.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.OPTIONS" class="title">Uses of Class<br>javax.ws.rs.OPTIONS</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.OPTIONS</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OPTIONS.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/PATCH.html b/apidocs/2.1.6/javax/ws/rs/class-use/PATCH.html
new file mode 100644
index 0000000..5526107
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/PATCH.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.PATCH (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.PATCH (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PATCH.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.PATCH" class="title">Uses of Class<br>javax.ws.rs.PATCH</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.PATCH</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PATCH.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/POST.html b/apidocs/2.1.6/javax/ws/rs/class-use/POST.html
new file mode 100644
index 0000000..b5728a4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/POST.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.POST (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.POST (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../POST.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.POST" class="title">Uses of Class<br>javax.ws.rs.POST</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.POST</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../POST.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/PUT.html b/apidocs/2.1.6/javax/ws/rs/class-use/PUT.html
new file mode 100644
index 0000000..53c60da
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/PUT.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.PUT (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.PUT (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PUT.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.PUT" class="title">Uses of Class<br>javax.ws.rs.PUT</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.PUT</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PUT.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/Path.html b/apidocs/2.1.6/javax/ws/rs/class-use/Path.html
new file mode 100644
index 0000000..eb7fe79
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/Path.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.Path (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.Path (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Path.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.Path" class="title">Uses of Class<br>javax.ws.rs.Path</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.Path</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Path.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/PathParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/PathParam.html
new file mode 100644
index 0000000..53fa1ef
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/PathParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.PathParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.PathParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.PathParam" class="title">Uses of Class<br>javax.ws.rs.PathParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.PathParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/Priorities.html b/apidocs/2.1.6/javax/ws/rs/class-use/Priorities.html
new file mode 100644
index 0000000..0da8d10
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/Priorities.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.Priorities (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.Priorities (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Priorities.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.Priorities" class="title">Uses of Class<br>javax.ws.rs.Priorities</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.Priorities</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Priorities.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ProcessingException.html b/apidocs/2.1.6/javax/ws/rs/class-use/ProcessingException.html
new file mode 100644
index 0000000..768dec7
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ProcessingException.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ProcessingException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ProcessingException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProcessingException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ProcessingException" class="title">Uses of Class<br>javax.ws.rs.ProcessingException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a> in <a href="../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subclasses of <a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a> in <a href="../client/package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../client/ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></span></code></th>
+<td class="colLast">
+<div class="block">Client-side runtime processing exception thrown to indicate that
+ response processing has failed (e.g.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ProcessingException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/Produces.html b/apidocs/2.1.6/javax/ws/rs/class-use/Produces.html
new file mode 100644
index 0000000..f705b58
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/Produces.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.Produces (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.Produces (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Produces.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.Produces" class="title">Uses of Class<br>javax.ws.rs.Produces</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.Produces</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Produces.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/QueryParam.html b/apidocs/2.1.6/javax/ws/rs/class-use/QueryParam.html
new file mode 100644
index 0000000..6768bbe
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/QueryParam.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.QueryParam (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.QueryParam (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../QueryParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.QueryParam" class="title">Uses of Class<br>javax.ws.rs.QueryParam</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.QueryParam</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../QueryParam.html" title="annotation in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/RedirectionException.html b/apidocs/2.1.6/javax/ws/rs/class-use/RedirectionException.html
new file mode 100644
index 0000000..d95d704
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/RedirectionException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.RedirectionException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.RedirectionException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RedirectionException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.RedirectionException" class="title">Uses of Class<br>javax.ws.rs.RedirectionException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.RedirectionException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RedirectionException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/RuntimeType.html b/apidocs/2.1.6/javax/ws/rs/class-use/RuntimeType.html
new file mode 100644
index 0000000..eee500d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/RuntimeType.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.RuntimeType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.RuntimeType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeType.html" title="enum in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.RuntimeType" class="title">Uses of Class<br>javax.ws.rs.RuntimeType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a> in <a href="../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs</a> that return <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ConstrainedTo.html#value()">value</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Define the <a href="../RuntimeType.html" title="enum in javax.ws.rs"><code>constraint type</code></a> to be placed on a provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeType.</span><code><span class="memberNameLink"><a href="../RuntimeType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeType.</span><code><span class="memberNameLink"><a href="../RuntimeType.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a> in <a href="../core/package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../core/package-summary.html">javax.ws.rs.core</a> that return <a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../core/Configuration.html#getRuntimeType()">getRuntimeType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the runtime type of this configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeType.html" title="enum in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ServerErrorException.html b/apidocs/2.1.6/javax/ws/rs/class-use/ServerErrorException.html
new file mode 100644
index 0000000..72b2a73
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ServerErrorException.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ServerErrorException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ServerErrorException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerErrorException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ServerErrorException" class="title">Uses of Class<br>javax.ws.rs.ServerErrorException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a> in <a href="../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subclasses of <a href="../ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a> in <a href="../package-summary.html">javax.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating an <a href="../core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server error</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServerErrorException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/ServiceUnavailableException.html b/apidocs/2.1.6/javax/ws/rs/class-use/ServiceUnavailableException.html
new file mode 100644
index 0000000..4667672
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/ServiceUnavailableException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ServiceUnavailableException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ServiceUnavailableException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceUnavailableException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ServiceUnavailableException" class="title">Uses of Class<br>javax.ws.rs.ServiceUnavailableException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ServiceUnavailableException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ServiceUnavailableException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/class-use/WebApplicationException.html b/apidocs/2.1.6/javax/ws/rs/class-use/WebApplicationException.html
new file mode 100644
index 0000000..3476b80
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/class-use/WebApplicationException.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.WebApplicationException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.WebApplicationException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebApplicationException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.WebApplicationException" class="title">Uses of Class<br>javax.ws.rs.WebApplicationException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> in <a href="../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subclasses of <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> in <a href="../package-summary.html">javax.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a <a href="../core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a client request error
+ (HTTP <code>4xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that an access to a resource requested by
+ a client has been <a href="../core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a>
+ by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating an <a href="../core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server error</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that a client request is
+ <a href="../core/Response.Status.html#NOT_ACCEPTABLE"><code>not acceptable</code></a>
+ by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="../core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following
+ scenarios:
+ 
+ 
+ a client did not send the required authorization credentials to access the requested resource,
+ i.e.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a resource requested by a client was
+ <a href="../core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="../core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime application exception indicating a request redirection
+ (HTTP <code>3xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></span></code></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a server error
+ (HTTP <code>5xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></span></code></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> in <a href="../core/package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../core/package-summary.html">javax.ws.rs.core</a> that throw <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">StreamingOutput.</span><code><span class="memberNameLink"><a href="../core/StreamingOutput.html#write(java.io.OutputStream)">write</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;output)</code></th>
+<td class="colLast">
+<div class="block">Called to write the message body.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> in <a href="../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../ext/package-summary.html">javax.ws.rs.ext</a> that throw <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptor.</span><code><span class="memberNameLink"><a href="../ext/ReaderInterceptor.html#aroundReadFrom(javax.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom</a></span>&#8203;(<a href="../ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptor.</span><code><span class="memberNameLink"><a href="../ext/WriterInterceptor.html#aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo</a></span>&#8203;(<a href="../ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptorContext.</span><code><span class="memberNameLink"><a href="../ext/ReaderInterceptorContext.html#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptorContext.</span><code><span class="memberNameLink"><a href="../ext/WriterInterceptorContext.html#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebApplicationException.html" title="class in javax.ws.rs">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/AsyncInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/AsyncInvoker.html
new file mode 100644
index 0000000..ac6feaf
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/AsyncInvoker.html
@@ -0,0 +1,1435 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>AsyncInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AsyncInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface AsyncInvoker" class="title">Interface AsyncInvoker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">AsyncInvoker</span></pre>
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(javax.ws.rs.client.InvocationCallback)">delete</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(javax.ws.rs.client.InvocationCallback)">get</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head(javax.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(javax.ws.rs.client.InvocationCallback)">options</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i29">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i30">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i31">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i32">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(javax.ws.rs.client.InvocationCallback)">trace</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i33">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;get()</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ Note that in case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;get&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP GET method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                  <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                  <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                 Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                 <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                 the entity variant information.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the invocation processing has failed.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                   <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                   <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP POST method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                 Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                 <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                 the entity variant information.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;delete()</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;head()</pre>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head(javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;head&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;options()</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;options&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;trace()</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                        <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                     <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                     <a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Invoke an arbitrary method for the current request asynchronously.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                 Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                 <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                 the entity variant information.</dd>
+<dd><code>callback</code> - asynchronous invocation callback.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>future</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/Client.html b/apidocs/2.1.6/javax/ws/rs/client/Client.html
new file mode 100644
index 0000000..33c649a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/Client.html
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Client (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Client (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Client.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface Client" class="title">Interface Client</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="Client.html" title="interface in javax.ws.rs.client">Client</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Client</span>
+extends <a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="Client.html" title="interface in javax.ws.rs.client">Client</a>&gt;</pre>
+<div class="block">Client is the main entry point to the fluent API used to build and execute client
+ requests in order to consume responses returned.
+ <p/>
+ Clients are heavy-weight objects that manage the client-side communication
+ infrastructure. Initialization as well as disposal of a <code>Client</code> instance
+ may be a rather expensive operation. It is therefore advised to construct only
+ a small number of <code>Client</code> instances in the application. Client instances
+ must be <a href="#close()"><code>properly closed</code></a> before being disposed to avoid leaking
+ resources.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Configurable.html" title="interface in javax.ws.rs.core"><code>Configurable</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close client instance and all it's associated resources.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHostnameVerifier()">getHostnameVerifier</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the hostname verifier configured in the client or <code>null</code> in case
+ no hostname verifier has been configured.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSslContext()">getSslContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the SSL context configured to be used with the current client run-time.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invocation(javax.ws.rs.core.Link)">invocation</a></span>&#8203;(<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build an invocation builder from a link.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(java.lang.String)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(java.net.URI)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(javax.ws.rs.core.Link)">target</a></span>&#8203;(<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(javax.ws.rs.core.UriBuilder)">target</a></span>&#8203;(<a href="../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.core.<a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></h3>
+<code><a href="../core/Configurable.html#getConfiguration()">getConfiguration</a>, <a href="../core/Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="../core/Configurable.html#register(java.lang.Class)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()</pre>
+<div class="block">Close client instance and all it's associated resources. Subsequent calls
+ have no effect and are ignored. Once the client is closed, invoking any
+ other method on the client instance would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a>
+ being thrown.
+ <p/>
+ Calling this method effectively invalidates all <a href="WebTarget.html" title="interface in javax.ws.rs.client"><code>resource targets</code></a>
+ produced by the client instance. Invoking any method on such targets once the client
+ is closed would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.</div>
+</li>
+</ul>
+<a id="target(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - web resource URI. May contain template parameters. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the provided URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the supplied string is not a valid URI template.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - web resource URI. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the provided URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(javax.ws.rs.core.UriBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriBuilder</code> - web resource URI represented as URI builder. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the provided URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(javax.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;target&#8203;(<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Build a new web resource target.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - link to a web resource. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>web resource target bound to the linked web resource.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied argument is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="invocation(javax.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invocation</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;invocation&#8203;(<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block"><p>Build an invocation builder from a link. It uses the URI and the type
+ of the link to initialize the invocation builder. The type is used as the
+ initial value for the HTTP Accept header, if present.</p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - link to build invocation from. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly created invocation builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case link is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSslContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSslContext</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;getSslContext()</pre>
+<div class="block">Get the SSL context configured to be used with the current client run-time.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>SSL context configured to be used with the current client run-time.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHostnameVerifier()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHostnameVerifier</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;getHostnameVerifier()</pre>
+<div class="block">Get the hostname verifier configured in the client or <code>null</code> in case
+ no hostname verifier has been configured.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>client hostname verifier or <code>null</code> if not set.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Client.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/ClientBuilder.html b/apidocs/2.1.6/javax/ws/rs/client/ClientBuilder.html
new file mode 100644
index 0000000..516d606
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/ClientBuilder.html
@@ -0,0 +1,791 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ClientBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":10,"i6":9,"i7":9,"i8":9,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientBuilder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Class ClientBuilder" class="title">Class ClientBuilder</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.client.ClientBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">ClientBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&gt;</pre>
+<div class="block">Main entry point to the client API used to bootstrap <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>
+ instances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Name of the property identifying the <a href="ClientBuilder.html" title="class in javax.ws.rs.client"><code>ClientBuilder</code></a> implementation
+ to be returned from <a href="#newBuilder()"><code>newBuilder()</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ClientBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Allows custom implementations to extend the <code>ClientBuilder</code> class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>abstract <a href="Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a new client instance using all the configuration previously specified
+ in this client builder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#connectTimeout(long,java.util.concurrent.TimeUnit)">connectTimeout</a></span>&#8203;(long&nbsp;timeout,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the connect timeout.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#executorService(java.util.concurrent.ExecutorService)">executorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hostnameVerifier(javax.net.ssl.HostnameVerifier)">hostnameVerifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;verifier)</code></th>
+<td class="colLast">
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's
+ identification information.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyStore(java.security.KeyStore,char%5B%5D)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        char[]&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keyStore(java.security.KeyStore,java.lang.String)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>static <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBuilder()">newBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>static <a href="Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newClient()">newClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation
+ class provided by the implementation provider.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>static <a href="Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newClient(javax.ws.rs.core.Configuration)">newClient</a></span>&#8203;(<a href="../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create a new custom-configured <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readTimeout(long,java.util.concurrent.TimeUnit)">readTimeout</a></span>&#8203;(long&nbsp;timeout,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the read timeout.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">scheduledExecutorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sslContext(javax.net.ssl.SSLContext)">sslContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;sslContext)</code></th>
+<td class="colLast">
+<div class="block">Set the SSL context that will be used when creating secured transport connections
+ to server endpoints from <a href="WebTarget.html" title="interface in javax.ws.rs.client"><code>web targets</code></a> created by the client
+ instance that is using this SSL context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trustStore(java.security.KeyStore)">trustStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;trustStore)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side trust store.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>abstract <a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withConfig(javax.ws.rs.core.Configuration)">withConfig</a></span>&#8203;(<a href="../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.core.<a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></h3>
+<code><a href="../core/Configurable.html#getConfiguration()">getConfiguration</a>, <a href="../core/Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="../core/Configurable.html#register(java.lang.Class)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY</pre>
+<div class="block">Name of the property identifying the <a href="ClientBuilder.html" title="class in javax.ws.rs.client"><code>ClientBuilder</code></a> implementation
+ to be returned from <a href="#newBuilder()"><code>newBuilder()</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.client.ClientBuilder.JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ClientBuilder</h4>
+<pre>protected&nbsp;ClientBuilder()</pre>
+<div class="block">Allows custom implementations to extend the <code>ClientBuilder</code> class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newBuilder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;newBuilder()</pre>
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new client builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="newClient()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Client.html" title="interface in javax.ws.rs.client">Client</a>&nbsp;newClient()</pre>
+<div class="block">Create a new <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation
+ class provided by the implementation provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new client instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="newClient(javax.ws.rs.core.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newClient</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Client.html" title="interface in javax.ws.rs.client">Client</a>&nbsp;newClient&#8203;(<a href="../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;configuration)</pre>
+<div class="block">Create a new custom-configured <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - data used to provide initial configuration for the new
+                      client instance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new configured client instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="withConfig(javax.ws.rs.core.Configuration)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withConfig</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;withConfig&#8203;(<a href="../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;config)</pre>
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - external configuration state to replace the configuration of this configurable
+               instance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated client builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="sslContext(javax.net.ssl.SSLContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sslContext</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;sslContext&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;sslContext)</pre>
+<div class="block">Set the SSL context that will be used when creating secured transport connections
+ to server endpoints from <a href="WebTarget.html" title="interface in javax.ws.rs.client"><code>web targets</code></a> created by the client
+ instance that is using this SSL context. The SSL context is expected to have all the
+ security infrastructure initialized, including the key and trust managers.
+ <p>
+ Setting a SSL context instance resets any <a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>key store</code></a> or <a href="#trustStore(java.security.KeyStore)"><code>trust store</code></a> values previously
+ specified.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sslContext</code> - secure socket protocol implementation which acts as a factory
+                   for secure socket factories or <a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLEngine.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink"><code>SSL engines</code></a>. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>sslContext</code> parameter is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a>, 
+<a href="#keyStore(java.security.KeyStore,java.lang.String)"><code>keyStore(java.security.KeyStore, String)</code></a>, 
+<a href="#trustStore(java.security.KeyStore)"><code>trustStore(java.security.KeyStore)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="keyStore(java.security.KeyStore,char[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyStore</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;keyStore&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+                                       char[]&nbsp;password)</pre>
+<div class="block">Set the client-side key store. Key store contains client's private keys, and the certificates with their
+ corresponding public keys.
+ <p>
+ Setting a key store instance resets any <a href="#sslContext(javax.net.ssl.SSLContext)"><code>SSL context instance</code></a>
+ value previously specified.
+ </p>
+ <p>
+ Note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections
+ (client certificate authentication).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStore</code> - client-side key store. Must not be <code>null</code>.</dd>
+<dd><code>password</code> - client key password. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the supplied parameters is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#sslContext(javax.net.ssl.SSLContext)"><code>sslContext(javax.net.ssl.SSLContext)</code></a>, 
+<a href="#keyStore(java.security.KeyStore,java.lang.String)"><code>keyStore(java.security.KeyStore, String)</code></a>, 
+<a href="#trustStore(java.security.KeyStore)"><code>trustStore(java.security.KeyStore)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="keyStore(java.security.KeyStore,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keyStore</h4>
+<pre class="methodSignature">public&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;keyStore&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;password)</pre>
+<div class="block">Set the client-side key store. Key store contains client's private keys, and the certificates with their
+ corresponding public keys.
+ <p>
+ Setting a key store instance resets any <a href="#sslContext(javax.net.ssl.SSLContext)"><code>SSL context instance</code></a>
+ value previously specified.
+ </p>
+ <p>
+ Note that for improved security of working with password data and avoid storing passwords in Java string
+ objects, the <a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a> version of the method can be utilized.
+ Also note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL
+ connections (client certificate authentication).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>keyStore</code> - client-side key store. Must not be <code>null</code>.</dd>
+<dd><code>password</code> - client key password. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the supplied parameters is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#sslContext(javax.net.ssl.SSLContext)"><code>sslContext(javax.net.ssl.SSLContext)</code></a>, 
+<a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a>, 
+<a href="#trustStore(java.security.KeyStore)"><code>trustStore(java.security.KeyStore)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="trustStore(java.security.KeyStore)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trustStore</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;trustStore&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;trustStore)</pre>
+<div class="block">Set the client-side trust store. Trust store is expected to contain certificates from other parties
+ the client is you expect to communicate with, or from Certificate Authorities that are trusted to
+ identify other parties.
+ <p>
+ Setting a trust store instance resets any <a href="#sslContext(javax.net.ssl.SSLContext)"><code>SSL context instance</code></a>
+ value previously specified.
+ </p>
+ <p>
+ In case a custom trust store or custom SSL context is not specified, the trust management will be
+ configured to use the default Java runtime settings.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>trustStore</code> - client-side trust store. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied trust store parameter is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#sslContext(javax.net.ssl.SSLContext)"><code>sslContext(javax.net.ssl.SSLContext)</code></a>, 
+<a href="#keyStore(java.security.KeyStore,char%5B%5D)"><code>keyStore(java.security.KeyStore, char[])</code></a>, 
+<a href="#keyStore(java.security.KeyStore,java.lang.String)"><code>keyStore(java.security.KeyStore, String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="hostnameVerifier(javax.net.ssl.HostnameVerifier)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hostnameVerifier</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;hostnameVerifier&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;verifier)</pre>
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's
+ identification information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>verifier</code> - hostname verifier.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="executorService(java.util.concurrent.ExecutorService)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>executorService</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;executorService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</pre>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.
+ <p>
+ Provided executor service will be used for executing asynchronous tasks.
+ <p>
+ When running in a Jakarta EE container, implementations are required to use the container-managed
+ executor service by default.  In Java SE, the default is implementation-specific.  In either
+ case, calling this method will override the default.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>executorService</code> - executor service to be used for async invocations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.Builder.html#async()"><code>Invocation.Builder.async()</code></a>, 
+<a href="Invocation.Builder.html#rx()"><code>Invocation.Builder.rx()</code></a>, 
+<a href="RxInvokerProvider.html#getRxInvoker(javax.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)"><code>RxInvokerProvider.getRxInvoker(SyncInvoker, ExecutorService)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>scheduledExecutorService</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;scheduledExecutorService&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</pre>
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.
+ <p>
+ Provided executor service will be used for executing scheduled asynchronous tasks.
+ <p>
+ When running in a Jakarta EE container, implementations are required to use the container-managed
+ scheduled executor service by default.  In Java SE the default is implementation-specific.  In 
+ either case, calling this method will override the default.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheduledExecutorService</code> - executor service to be used for scheduled async invocations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../sse/SseEventSource.Builder.html#reconnectingEvery(long,java.util.concurrent.TimeUnit)"><code>SseEventSource.Builder.reconnectingEvery(long, TimeUnit)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="connectTimeout(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectTimeout</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;connectTimeout&#8203;(long&nbsp;timeout,
+                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set the connect timeout.
+ <p>
+ Value <code>0</code> represents infinity. Negative values are not allowed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time to wait.</dd>
+<dd><code>unit</code> - the time unit of the timeout argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the value is negative.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="readTimeout(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readTimeout</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a>&nbsp;readTimeout&#8203;(long&nbsp;timeout,
+                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set the read timeout.
+ <p>
+ The value is the timeout to read a response. If the server doesn't respond within the defined timeframe,
+ <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> is thrown with <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeoutException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>TimeoutException</code></a> as a cause.
+ <p>
+ Value <code>0</code> represents infinity. Negative values are not allowed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time to wait.</dd>
+<dd><code>unit</code> - the time unit of the timeout argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an updated client builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the value is negative.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Client.html" title="interface in javax.ws.rs.client">Client</a>&nbsp;build()</pre>
+<div class="block">Build a new client instance using all the configuration previously specified
+ in this client builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new client instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientBuilder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/ClientRequestContext.html b/apidocs/2.1.6/javax/ws/rs/client/ClientRequestContext.html
new file mode 100644
index 0000000..be40903
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/ClientRequestContext.html
@@ -0,0 +1,956 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ClientRequestContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientRequestContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface ClientRequestContext" class="title">Interface ClientRequestContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientRequestContext</span></pre>
+<div class="block">Client request filter context.
+
+ A mutable class that provides request-specific information for the filter,
+ such as request URI, message headers, message entity or request-scoped
+ properties. The exposed setters allow modification of the exposed request-specific
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#abortWith(javax.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableLanguages()">getAcceptableLanguages</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClient()">getClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the client instance associated with the request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable configuration of the request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the message entity Java instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityAnnotations()">getEntityAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the annotations attached to the entity instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityClass()">getEntityClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the raw entity type information.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity output stream.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityType()">getEntityType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the generic entity type information.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request method.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names
+ available within the context of the current request/response exchange context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request URI.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is an entity available in the request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeProperty(java.lang.String)">removeProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.OutputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity output stream.</div>
+</td>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMethod(java.lang.String)">setMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Set the request method.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProperty(java.lang.String,java.lang.Object)">setProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setUri(java.net.URI)">setUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set a new request URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.
+ <p>
+ A property allows filters and interceptors to exchange
+ additional custom information not already provided by this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>.
+ Custom property names should follow the same convention as package names.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>Object</code> containing the value of the property, or
+         <code>null</code> if no property exists matching the given name.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPropertyNames()"><code>getPropertyNames()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property names
+ available within the context of the current request/response exchange context.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of
+ a property.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProperty(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre class="methodSignature">void&nbsp;setProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context. If the name specified is already used for a property,
+ this method will replace the value of the property with the new value.
+ <p>
+ A property allows a filters and interceptors to exchange
+ additional custom information not already provided by this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>.
+ Custom property names should follow the same convention as package names.
+ </p>
+ <p>
+ If a <code>null</code> value is passed, the effect is the same as calling the
+ <a href="#removeProperty(java.lang.String)"><code>removeProperty(String)</code></a> method.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dd><code>object</code> - an <code>Object</code> representing the property to be bound.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeProperty</h4>
+<pre class="methodSignature">void&nbsp;removeProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context. After removal, subsequent calls to <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a>
+ to retrieve the property value will return <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Get the request URI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="setUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUri</h4>
+<pre class="methodSignature">void&nbsp;setUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Set a new request URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - new request URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMethod()</pre>
+<div class="block">Get the request method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMethod(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMethod</h4>
+<pre class="methodSignature">void&nbsp;setMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Set the request method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - new request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable request headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of request headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getStringHeaders()"><code>getStringHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getStringHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getStringHeaders()</pre>
+<div class="block">Get a string view of header values associated with the message.
+
+ Changes in the underlying <a href="#getHeaders()"><code>headers map</code></a> are reflected
+ in this view.
+ <p>
+ The method converts the non-string header values to strings using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the
+ class of the value or using the values <code>toString</code> method if a header delegate is
+ not available.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a string view of header values.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.
+
+ Each single header value is converted to String using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available
+ via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a>
+ for the header value class or using its <code>toString</code> method  if a header
+ delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then
+         <code>null</code> is returned. If the message header is present but has no
+         value then the empty string is returned. If the message header is present
+         more than once then the values of joined together and separated by a ','
+         character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getStringHeaders()"><code>getStringHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no
+         request entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableMediaTypes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableMediaTypes</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;&nbsp;getAcceptableMediaTypes()</pre>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of requested response media types sorted according
+         to their q-value, with highest preference first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableLanguages()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableLanguages</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;&nbsp;getAcceptableLanguages()</pre>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of acceptable languages sorted according
+         to their q-value, with highest preference first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any cookies that accompanied the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to <a href="../core/Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is an entity available in the request.
+
+ The method returns <code>true</code> if the entity is present, returns
+ <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message,
+         <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get the message entity Java instance.
+
+ Returns <code>null</code> if the message does not contain an entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity or <code>null</code> if message does not contain an
+         entity body.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityClass</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getEntityClass()</pre>
+<div class="block">Get the raw entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>raw entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getEntityType()</pre>
+<div class="block">Get the generic entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>generic entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Set a new message entity. The existing entity <a href="#getEntityAnnotations()"><code>annotations</code></a>
+ and <a href="#getMediaType()"><code>media type</code></a> are preserved.
+ <p>
+ It is the callers responsibility to wrap the actual entity with
+ <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic
+ type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)"><code>setEntity(Object, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+               <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Set a new message entity, including the attached annotations and the media type.
+ <p>
+ It is the callers responsibility to wrap the actual entity with
+ <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic
+ type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dd><code>annotations</code> - annotations attached to the entity instance.</dd>
+<dd><code>mediaType</code> - entity media type.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object)"><code>setEntity(Object)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityAnnotations</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getEntityAnnotations()</pre>
+<div class="block">Get the annotations attached to the entity instance.
+ <p>
+ Note that the returned annotations array contains only those annotations
+ explicitly attached to entity instance (such as the ones attached using
+ <code>Entity(Object, javax.ws.rs.core.MediaType, java.lang.annotation.Annotation[])</code> method).
+ The entity instance annotations array does not include annotations declared on the entity
+ implementation class or its ancestors.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>annotations attached to the entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity output stream. The runtime is responsible for
+ closing the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity output stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</pre>
+<div class="block">Set a new entity output stream. The runtime is responsible for
+ closing the output stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>outputStream</code> - new entity output stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClient()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClient</h4>
+<pre class="methodSignature"><a href="Client.html" title="interface in javax.ws.rs.client">Client</a>&nbsp;getClient()</pre>
+<div class="block">Get the client instance associated with the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>client instance associated with the request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getConfiguration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature"><a href="../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Get the immutable configuration of the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>immutable request configuration.</dd>
+</dl>
+</li>
+</ul>
+<a id="abortWith(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>abortWith</h4>
+<pre class="methodSignature">void&nbsp;abortWith&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Abort the filter chain with a response.
+
+ This method breaks the filter chain processing and returns the provided
+ response back to the client. The provided response goes through the
+ chain of applicable response filters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response to be sent back to the client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/ClientRequestFilter.html b/apidocs/2.1.6/javax/ws/rs/client/ClientRequestFilter.html
new file mode 100644
index 0000000..597adc1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/ClientRequestFilter.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ClientRequestFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientRequestFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface ClientRequestFilter" class="title">Interface ClientRequestFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientRequestFilter</span></pre>
+<div class="block">An extension interface implemented by client request filters.
+
+ Filters implementing this interface MUST be annotated with
+ <a href="../ext/Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> to be discovered by the
+ runtime. This type of filters is supported only as part of the Client API.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientResponseFilter.html" title="interface in javax.ws.rs.client"><code>ClientResponseFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(javax.ws.rs.client.ClientRequestContext)">filter</a></span>&#8203;(<a href="ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a client
+ transport layer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(javax.ws.rs.client.ClientRequestContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called before a request has been dispatched to a client
+ transport layer.
+
+ Filters in the filter chain are ordered according to their <code>javax.annotation.Priority</code>
+ class-level annotation value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientRequestFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/ClientResponseContext.html b/apidocs/2.1.6/javax/ws/rs/client/ClientResponseContext.html
new file mode 100644
index 0000000..9ae9c20
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/ClientResponseContext.html
@@ -0,0 +1,719 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ClientResponseContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientResponseContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface ClientResponseContext" class="title">Interface ClientResponseContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientResponseContext</span></pre>
+<div class="block">Client response filter context.
+
+ A mutable class that provides response-specific information for the filter,
+ such as message headers, message entity or request-scoped properties.
+ The exposed setters allow modification of the exposed response-specific
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedMethods()">getAllowedMethods</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity input stream.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="../core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the last modified date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the location.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the status code associated with the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is a non-empty entity input stream is available in the response
+ message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasLink(java.lang.String)">hasLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Check if link for relation exists.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.InputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity input stream.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatus(int)">setStatus</a></span>&#8203;(int&nbsp;code)</code></th>
+<td class="colLast">
+<div class="block">Set a new response status code.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatusInfo(javax.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">int&nbsp;getStatus()</pre>
+<div class="block">Get the status code associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status code or -1 if the status was not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatus(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatus</h4>
+<pre class="methodSignature">void&nbsp;setStatus&#8203;(int&nbsp;code)</pre>
+<div class="block">Set a new response status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - new status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusInfo</h4>
+<pre class="methodSignature"><a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;getStatusInfo()</pre>
+<div class="block">Get the complete status information associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status information or <code>null</code> if the status was
+         not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatusInfo(javax.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatusInfo</h4>
+<pre class="methodSignature">void&nbsp;setStatusInfo&#8203;(<a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</pre>
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusInfo</code> - the response status information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable response headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of response headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then
+         <code>null</code> is returned. If the message header is present but has no
+         value then the empty string is returned. If the message header is present
+         more than once then the values of joined together and separated by a ','
+         character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getAllowedMethods()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllowedMethods</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;&nbsp;getAllowedMethods()</pre>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the allowed HTTP methods, all methods will returned as upper case
+         strings.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other
+         cases returns -1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no
+         response entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any new cookies set on the response message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to a <a href="../core/NewCookie.html" title="class in javax.ws.rs.core"><code>new cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityTag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityTag</h4>
+<pre class="methodSignature"><a href="../core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;getEntityTag()</pre>
+<div class="block">Get the entity tag.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getLastModified()</pre>
+<div class="block">Get the last modified date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last modified date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the location URI, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinks()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinks</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&gt;&nbsp;getLinks()</pre>
+<div class="block">Get the links attached to the message as header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>links, may return empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> if no links are present. Never
+         returns <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasLink</h4>
+<pre class="methodSignature">boolean&nbsp;hasLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Check if link for relation exists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the for the relation link exists, <code>false</code>
+         otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLink</h4>
+<pre class="methodSignature"><a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;getLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Get the link for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link for the relation, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinkBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinkBuilder</h4>
+<pre class="methodSignature"><a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;getLinkBuilder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link builder for the relation, otherwise <code>null</code> if not
+         present.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is a non-empty entity input stream is available in the response
+ message.
+
+ The method returns <code>true</code> if the entity is present, returns
+ <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message,
+         <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity input stream. The runtime is responsible for
+ closing the input stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity input stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</pre>
+<div class="block">Set a new entity input stream. The runtime is responsible for
+ closing the input stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - new entity input stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/ClientResponseFilter.html b/apidocs/2.1.6/javax/ws/rs/client/ClientResponseFilter.html
new file mode 100644
index 0000000..c11a900
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/ClientResponseFilter.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ClientResponseFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ClientResponseFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface ClientResponseFilter" class="title">Interface ClientResponseFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ClientResponseFilter</span></pre>
+<div class="block">An extension interface implemented by client response filters.
+
+ Filters implementing this interface MUST be annotated with
+ <a href="../ext/Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> to be discovered by the
+ runtime. This type of filters is supported only as part of the Client API.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>ClientRequestFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(javax.ws.rs.client.ClientRequestContext,javax.ws.rs.client.ClientResponseContext)">filter</a></span>&#8203;(<a href="ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+      <a href="ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>request filter</code></a> or when the
+ HTTP invocation returns).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(javax.ws.rs.client.ClientRequestContext,javax.ws.rs.client.ClientResponseContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+            <a href="ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>request filter</code></a> or when the
+ HTTP invocation returns).
+
+ Filters in the filter chain are ordered according to their <code>javax.annotation.Priority</code>
+ class-level annotation value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dd><code>responseContext</code> - response context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ClientResponseFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/CompletionStageRxInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/CompletionStageRxInvoker.html
new file mode 100644
index 0000000..62f3e2e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/CompletionStageRxInvoker.html
@@ -0,0 +1,954 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>CompletionStageRxInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompletionStageRxInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionStageRxInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface CompletionStageRxInvoker" class="title">Interface CompletionStageRxInvoker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">CompletionStageRxInvoker</span>
+extends <a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</pre>
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;get()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#get()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#get()">get</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#get(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#get(java.lang.Class)">get</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#get(javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#get(javax.ws.rs.core.GenericType)">get</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#put(javax.ws.rs.client.Entity)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#put(javax.ws.rs.client.Entity)">put</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>clazz</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                           <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>type</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#post(javax.ws.rs.client.Entity)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#post(javax.ws.rs.client.Entity)">post</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>clazz</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                            <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>type</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;delete()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#delete()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#delete()">delete</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#delete(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#delete(java.lang.Class)">delete</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#delete(javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#delete(javax.ws.rs.core.GenericType)">delete</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;head()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#head()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#head()">head</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;options()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#options()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#options()">options</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#options(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#options(java.lang.Class)">options</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#options(javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#options(javax.ws.rs.core.GenericType)">options</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;trace()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#trace()">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#trace()">trace</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#trace(java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#trace(java.lang.Class)">trace</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#trace(javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#trace(javax.ws.rs.core.GenericType)">trace</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,java.lang.Class)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                 <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                              <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+                              <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">RxInvoker</a></code></span></div>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></code>&nbsp;in interface&nbsp;<code><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&gt;</code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionStageRxInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/Entity.html b/apidocs/2.1.6/javax/ws/rs/client/Entity.html
new file mode 100644
index 0000000..8ad0df7
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/Entity.html
@@ -0,0 +1,763 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Entity (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Entity (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":9,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":9,"i17":9,"i18":10,"i19":9,"i20":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Entity.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Class Entity" class="title">Class Entity&lt;T&gt;</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.client.Entity&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity type.</dd>
+</dl>
+<hr>
+<pre>public final class <span class="typeNameLabel">Entity&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,java.lang.String)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,javax.ws.rs.core.MediaType)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,javax.ws.rs.core.Variant)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(T,javax.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>static <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#form(javax.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../core/Form.html" title="class in javax.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>static <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#form(javax.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotations()">getAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity annotations.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEncoding()">getEncoding</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity encoding.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="Entity.html" title="type parameter in Entity">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity language.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="../core/Variant.html" title="class in javax.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVariant()">getVariant</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>variant</code></a> information.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#html(T)">html</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#json(T)">json</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#text(T)">text</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#xhtml(T)">xhtml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#xml(T)">xml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="entity(java.lang.Object,javax.ws.rs.core.MediaType)">
+<!--   -->
+</a><a id="entity(T,javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>mediaType</code> - entity content type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation[])">
+<!--   -->
+</a><a id="entity(T,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>mediaType</code> - entity content type.</dd>
+<dd><code>annotations</code> - entity annotations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,java.lang.String)">
+<!--   -->
+</a><a id="entity(T,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mediaType)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>mediaType</code> - entity content type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed
+                                  or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,javax.ws.rs.core.Variant)">
+<!--   -->
+</a><a id="entity(T,javax.ws.rs.core.Variant)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>variant</code> - entity <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>variant</code></a> information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,javax.ws.rs.core.Variant,java.lang.annotation.Annotation[])">
+<!--   -->
+</a><a id="entity(T,javax.ws.rs.core.Variant,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;entity&#8203;(T&nbsp;entity,
+                                   <a href="../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Create an entity using a supplied content media type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dd><code>variant</code> - entity <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>variant</code></a> information.</dd>
+<dd><code>annotations</code> - entity annotations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="text(java.lang.Object)">
+<!--   -->
+</a><a id="text(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>text</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;text&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="xml(java.lang.Object)">
+<!--   -->
+</a><a id="xml(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>xml</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;xml&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="json(java.lang.Object)">
+<!--   -->
+</a><a id="json(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>json</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;json&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="html(java.lang.Object)">
+<!--   -->
+</a><a id="html(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>html</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;html&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create a <a href="../core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#TEXT_HTML">"text/html"</a> entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="xhtml(java.lang.Object)">
+<!--   -->
+</a><a id="xhtml(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>xhtml</h4>
+<pre class="methodSignature">public static&nbsp;&lt;T&gt;&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;&nbsp;xhtml&#8203;(T&nbsp;entity)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity
+         instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="form(javax.ws.rs.core.Form)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>form</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in javax.ws.rs.core">Form</a>&gt;&nbsp;form&#8203;(<a href="../core/Form.html" title="class in javax.ws.rs.core">Form</a>&nbsp;form)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>form</code> - form data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+         form entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="form(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>form</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../core/Form.html" title="class in javax.ws.rs.core">Form</a>&gt;&nbsp;form&#8203;(<a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</pre>
+<div class="block">Create an <a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>formData</code> - multivalued map representing the form data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+         form entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVariant()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVariant</h4>
+<pre class="methodSignature">public&nbsp;<a href="../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;getVariant()</pre>
+<div class="block">Get entity <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>variant</code></a> information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity variant information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature">public&nbsp;<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get entity media type.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity media type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEncoding()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEncoding</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getEncoding()</pre>
+<div class="block">Get entity encoding.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity encoding.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get entity language.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity language.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature">public&nbsp;<a href="Entity.html" title="type parameter in Entity">T</a>&nbsp;getEntity()</pre>
+<div class="block">Get entity data.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAnnotations</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getAnnotations()</pre>
+<div class="block">Get the entity annotations.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity annotations if set, an empty annotation array if no
+         entity annotations have been specified.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Entity.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/Invocation.Builder.html b/apidocs/2.1.6/javax/ws/rs/client/Invocation.Builder.html
new file mode 100644
index 0000000..62a69b1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/Invocation.Builder.html
@@ -0,0 +1,776 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Invocation.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Invocation.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface Invocation.Builder" class="title">Interface Invocation.Builder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Invocation.Builder</span>
+extends <a href="SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></pre>
+<div class="block">A client request invocation builder.
+
+ The builder, obtained via a call to one of the <code>request(...)</code>
+ methods on a <a href="WebTarget.html" title="interface in javax.ws.rs.client"><code>resource target</code></a>, provides methods for
+ preparing a client request invocation. Once the request is prepared
+ the invocation builder can be either used to build an <a href="Invocation.html" title="interface in javax.ws.rs.client"><code>Invocation</code></a>
+ with a generic execution interface:
+ <pre>
+   Client client = ClientBuilder.newClient();
+   WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+   // Build a HTTP GET request that accepts "text/plain" response type
+   // and contains a custom HTTP header entry "Foo: bar".
+   Invocation invocation = resourceTarget.request("text/plain")
+           .header("Foo", "bar").buildGet();
+
+   // Invoke the request using generic interface
+   String response = invocation.invoke(String.class);
+ </pre>
+ Alternatively, one of the inherited <a href="SyncInvoker.html" title="interface in javax.ws.rs.client"><code>synchronous invocation
+ methods</code></a> can be used to invoke the prepared request and return the server
+ response in a single step, e.g.:
+ <pre>
+   Client client = ClientBuilder.newClient();
+   WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+   // Build and invoke the get request in a single step
+   String response = resourceTarget.request("text/plain")
+           .header("Foo", "bar").get(String.class);
+ </pre>
+ Once the request is fully prepared for invoking, switching to an
+ <a href="AsyncInvoker.html" title="interface in javax.ws.rs.client"><code>asynchronous invocation</code></a> mode is possible by
+ calling the <a href="#async()"><code>async()</code></a> method on the builder, e.g.:
+ <pre>
+   Client client = ClientBuilder.newClient();
+   WebTarget resourceTarget = client.target("http://examples.jaxrs.com/");
+
+   // Build and invoke the get request asynchronously in a single step
+   Future<String> response = resourceTarget.request("text/plain")
+           .header("Foo", "bar").async().get(String.class);
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accept(java.lang.String...)">accept</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accept(javax.ws.rs.core.MediaType...)">accept</a></span>&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptEncoding(java.lang.String...)">acceptEncoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable encodings.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptLanguage(java.lang.String...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#acceptLanguage(java.util.Locale...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#async()">async</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the asynchronous uniform request invocation interface to
+ asynchronously invoke the built request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.String)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.String,javax.ws.rs.client.Entity)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+     <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name and
+ request entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildDelete()">buildDelete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a DELETE request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildGet()">buildGet</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a GET request invocation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildPost(javax.ws.rs.client.Entity)">buildPost</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a POST request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildPut(javax.ws.rs.client.Entity)">buildPut</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a PUT request invocation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cookie(java.lang.String,java.lang.String)">cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cookie(javax.ws.rs.core.Cookie)">cookie</a></span>&#8203;(<a href="../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#headers(javax.ws.rs.core.MultivaluedMap)">headers</a></span>&#8203;(<a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation builder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rx()">rx</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>&lt;T extends <a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;<br>T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rx(java.lang.Class)">rx</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Access a reactive invoker based on a <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.client.SyncInvoker">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.client.<a href="SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></h3>
+<code><a href="SyncInvoker.html#delete()">delete</a>, <a href="SyncInvoker.html#delete(java.lang.Class)">delete</a>, <a href="SyncInvoker.html#delete(javax.ws.rs.core.GenericType)">delete</a>, <a href="SyncInvoker.html#get()">get</a>, <a href="SyncInvoker.html#get(java.lang.Class)">get</a>, <a href="SyncInvoker.html#get(javax.ws.rs.core.GenericType)">get</a>, <a href="SyncInvoker.html#head()">head</a>, <a href="SyncInvoker.html#method(java.lang.String)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,java.lang.Class)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a>, <a href="SyncInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a>, <a href="SyncInvoker.html#options()">options</a>, <a href="SyncInvoker.html#options(java.lang.Class)">options</a>, <a href="SyncInvoker.html#options(javax.ws.rs.core.GenericType)">options</a>, <a href="SyncInvoker.html#post(javax.ws.rs.client.Entity)">post</a>, <a href="SyncInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a>, <a href="SyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a>, <a href="SyncInvoker.html#put(javax.ws.rs.client.Entity)">put</a>, <a href="SyncInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a>, <a href="SyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a>, <a href="SyncInvoker.html#trace()">trace</a>, <a href="SyncInvoker.html#trace(java.lang.Class)">trace</a>, <a href="SyncInvoker.html#trace(javax.ws.rs.core.GenericType)">trace</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="build(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - request method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built request.</dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.String,javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+                 <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Build a request invocation using an arbitrary request method name and
+ request entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - request method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildGet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildGet</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;buildGet()</pre>
+<div class="block">Build a GET request invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built GET request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildDelete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildDelete</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;buildDelete()</pre>
+<div class="block">Build a DELETE request invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built DELETE request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildPost(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildPost</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;buildPost&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Build a POST request invocation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built POST request.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildPut(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildPut</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;buildPut&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Build a PUT request invocation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation encapsulating the built PUT request.</dd>
+</dl>
+</li>
+</ul>
+<a id="async()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>async</h4>
+<pre class="methodSignature"><a href="AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a>&nbsp;async()</pre>
+<div class="block">Access the asynchronous uniform request invocation interface to
+ asynchronously invoke the built request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>asynchronous uniform request invocation interface.</dd>
+</dl>
+</li>
+</ul>
+<a id="accept(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accept</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;accept&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Add the accepted response media types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="accept(javax.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accept</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;accept&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Add the accepted response media types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="acceptLanguage(java.util.Locale...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acceptLanguage</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;acceptLanguage&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;locales)</pre>
+<div class="block">Add acceptable languages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>locales</code> - an array of the acceptable languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="acceptLanguage(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acceptLanguage</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;acceptLanguage&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;locales)</pre>
+<div class="block">Add acceptable languages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>locales</code> - an array of the acceptable languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="acceptEncoding(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acceptEncoding</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;acceptEncoding&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</pre>
+<div class="block">Add acceptable encodings.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodings</code> - an array of the acceptable encodings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cookie(javax.ws.rs.core.Cookie)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cookie</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;cookie&#8203;(<a href="../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</pre>
+<div class="block">Add a cookie to be set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - to be set.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cookie(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cookie</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Add a cookie to be set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cacheControl(javax.ws.rs.core.CacheControl)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cacheControl</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;cacheControl&#8203;(<a href="../core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</pre>
+<div class="block">Set the cache control data of the message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cacheControl</code> - the cache control directives, if <code>null</code>
+                     any existing cache control directives will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="header(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>header</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;header&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Add an arbitrary header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the header</dd>
+<dd><code>value</code> - the value of the header, the header will be serialized
+              using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if
+              one is available via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a>
+              for the class of <code>value</code> or using its <code>toString</code> method
+              if a header delegate is not available. If <code>value</code> is <code>null</code>
+              then all current headers of the same name will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="headers(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>headers</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;headers&#8203;(<a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</pre>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>headers</code> - new headers to be set, if <code>null</code> all existing
+                headers will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="property(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>property</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;property&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Set a new property in the context of a request represented by this invocation builder.
+ <p>
+ The property is available for a later retrieval via <a href="ClientRequestContext.html#getProperty(java.lang.String)"><code>ClientRequestContext.getProperty(String)</code></a>
+ or <a href="../ext/InterceptorContext.html#getProperty(java.lang.String)"><code>InterceptorContext.getProperty(String)</code></a>.
+ If a property with a given name is already set in the request context,
+ the existing value of the property will be updated.
+ Setting a <code>null</code> value into a property effectively removes the property
+ from the request property bag.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dd><code>value</code> - (new) property value. <code>null</code> value removes the property
+              with the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.html#property(java.lang.String,java.lang.Object)"><code>Invocation.property(String, Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="rx()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rx</h4>
+<pre class="methodSignature"><a href="CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a>&nbsp;rx()</pre>
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>default reactive invoker instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#rx(java.lang.Class)"><code>rx(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="rx(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>rx</h4>
+<pre class="methodSignature">&lt;T extends <a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;&nbsp;T&nbsp;rx&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</pre>
+<div class="block">Access a reactive invoker based on a <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass provider. Note
+ that corresponding <a href="RxInvokerProvider.html" title="interface in javax.ws.rs.client"><code>RxInvokerProvider</code></a> must be registered in the client runtime.
+ <p>
+ This method is an extension point for implementations to support other types
+ representing asynchronous computations.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reactive invoker instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - when provider for given class is not registered.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Configurable.html#register(java.lang.Class)"><code>Configurable.register(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/Invocation.html b/apidocs/2.1.6/javax/ws/rs/client/Invocation.html
new file mode 100644
index 0000000..fcf3fe9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/Invocation.html
@@ -0,0 +1,540 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Invocation (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Invocation (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface Invocation" class="title">Interface Invocation</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Invocation</span></pre>
+<div class="block">A client request invocation.
+
+ An invocation is a request that has been prepared and is ready for execution.
+ Invocations provide a generic (command) interface that enables a separation of
+ concerns between the creator and the submitter. In particular, the submitter
+ does not need to know how the invocation was prepared, but only how it should
+ be executed (synchronously or asynchronously) and when.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client"><code>Invocation.Builder</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke()">invoke</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke(java.lang.Class)">invoke</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ type back.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#invoke(javax.ws.rs.core.GenericType)">invoke</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ generic type back.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit()">submit</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response back.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(java.lang.Class)">submit</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified type back.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(javax.ws.rs.client.InvocationCallback)">submit</a></span>&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and register an
+ <a href="InvocationCallback.html" title="interface in javax.ws.rs.client"><code>InvocationCallback</code></a> to process the future result of the invocation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#submit(javax.ws.rs.core.GenericType)">submit</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified generic type back.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="property(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>property</h4>
+<pre class="methodSignature"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a>&nbsp;property&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Set a new property in the context of a request represented by this invocation.
+ <p>
+ The property is available for a later retrieval via <a href="ClientRequestContext.html#getProperty(java.lang.String)"><code>ClientRequestContext.getProperty(String)</code></a>
+ or <a href="../ext/InterceptorContext.html#getProperty(java.lang.String)"><code>InterceptorContext.getProperty(String)</code></a>.
+ If a property with a given name is already set in the request context,
+ the existing value of the property will be updated.
+ Setting a <code>null</code> value into a property effectively removes the property
+ from the request property bag.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dd><code>value</code> - (new) property value. <code>null</code> value removes the property
+              with the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated invocation.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Invocation.Builder.html#property(java.lang.String,java.lang.Object)"><code>Invocation.Builder.property(String, Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="invoke()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invoke</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;invoke()</pre>
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="../core/Response.html" title="class in javax.ws.rs.core"><code>response</code></a> object as a result of the request
+         invocation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="invoke(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invoke</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;invoke&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ type back.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response object of the specified type as a result of the request
+         invocation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="invoke(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invoke</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;invoke&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ generic type back.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - type literal representing a generic Java type the
+                     response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response object of the specified generic type as a result of the
+         request invocation.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;submit()</pre>
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response back.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>response</code></a> object as a result of the request
+         invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;submit&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified type back.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future response object of the specified type as a result of the
+         request invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;submit&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified generic type back.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - type literal representing a generic Java type the
+                     response should be converted into.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future response object of the specified generic type as a result
+         of the request invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="submit(javax.ws.rs.client.InvocationCallback)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>submit</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;&nbsp;submit&#8203;(<a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</pre>
+<div class="block">Submit the request for an asynchronous invocation and register an
+ <a href="InvocationCallback.html" title="interface in javax.ws.rs.client"><code>InvocationCallback</code></a> to process the future result of the invocation.
+ <p>
+ Note that calling the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true#get()" title="class or interface in java.util.concurrent" class="externalLink"><code>Future.get()</code></a> method on the returned
+ <code>Future</code> instance may throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutionException</code></a>
+ that wraps either a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> thrown in case of an invocation processing
+ failure or a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one of its subclasses thrown in case the
+ received response status code is not <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic type of the supplied response callback is not
+ <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response type</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - invocation callback for asynchronous processing of the
+                 request invocation result.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>future response object of the specified type as a result of the
+         request invocation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Invocation.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/InvocationCallback.html b/apidocs/2.1.6/javax/ws/rs/client/InvocationCallback.html
new file mode 100644
index 0000000..fd240ea
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/InvocationCallback.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>InvocationCallback (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InvocationCallback (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InvocationCallback.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface InvocationCallback" class="title">Interface InvocationCallback&lt;RESPONSE&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RESPONSE</code> - response type. It can be either a general-purpose
+                   <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> or the anticipated response entity
+                   type.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">InvocationCallback&lt;RESPONSE&gt;</span></pre>
+<div class="block">Callback that can be implemented to receive the asynchronous processing
+ events from the invocation processing.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#completed(RESPONSE)">completed</a></span>&#8203;(<a href="InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Called when the invocation was successfully completed.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#failed(java.lang.Throwable)">failed</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</code></th>
+<td class="colLast">
+<div class="block">Called when the invocation has failed for any reason.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="completed(java.lang.Object)">
+<!--   -->
+</a><a id="completed(RESPONSE)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>completed</h4>
+<pre class="methodSignature">void&nbsp;completed&#8203;(<a href="InvocationCallback.html" title="type parameter in InvocationCallback">RESPONSE</a>&nbsp;response)</pre>
+<div class="block">Called when the invocation was successfully completed. Note that this does
+ not necessarily mean the response has bean fully read, which depends on the
+ parameterized invocation callback response type.
+ <p>
+ Once this invocation callback method returns, the underlying <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance will be automatically closed by the runtime.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response data.</dd>
+</dl>
+</li>
+</ul>
+<a id="failed(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>failed</h4>
+<pre class="methodSignature">void&nbsp;failed&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</pre>
+<div class="block">Called when the invocation has failed for any reason.
+ <p>
+ Note that the provided <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> may be a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> in case the
+ invocation processing failure has been caused by a client-side runtime component error.
+ The <code>Throwable</code> may also be a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a> or one
+ of its subclasses in case the response status code is not
+ <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the generic
+ callback type is not <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ In case a processing of a properly received response fails, the wrapped processing exception
+ will be of <a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><code>ResponseProcessingException</code></a> type and will contain the <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance whose processing has failed.
+ A <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CancellationException.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CancellationException</code></a> would be indicate that the invocation
+ has been cancelled.
+ An <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>InterruptedException</code></a> would indicate that the thread executing the invocation has
+ been interrupted.
+ </p>
+ <p>
+ Once this invocation callback method returns, the underlying <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance will be automatically closed by the runtime.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>throwable</code> - contains failure details.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InvocationCallback.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/ResponseProcessingException.html b/apidocs/2.1.6/javax/ws/rs/client/ResponseProcessingException.html
new file mode 100644
index 0000000..3af2831
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/ResponseProcessingException.html
@@ -0,0 +1,415 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ResponseProcessingException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ResponseProcessingException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResponseProcessingException.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Class ResponseProcessingException" class="title">Class ResponseProcessingException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../ProcessingException.html" title="class in javax.ws.rs">javax.ws.rs.ProcessingException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.client.ResponseProcessingException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">ResponseProcessingException</span>
+extends <a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></pre>
+<div class="block">Client-side runtime processing exception thrown to indicate that
+ response processing has failed (e.g. in a filter chain or during message
+ entity de-serialization). The exception contains the nested <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>
+ instance for which the runtime response processing failed.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#javax.ws.rs.client.ResponseProcessingException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String)">ResponseProcessingException</a></span>&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime response processing exception with the specified detail
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime response processing exception
+ for a specific <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>response</code></a> with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ResponseProcessingException</h4>
+<pre>public&nbsp;ResponseProcessingException&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new runtime response processing exception
+ for a specific <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>response</code></a> with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).
+ This constructor is useful for runtime exceptions that are little more
+ than wrappers for other throwables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response instance for which the processing failed.</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value is permitted,
+              and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ResponseProcessingException</h4>
+<pre>public&nbsp;ResponseProcessingException&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new runtime response processing exception with the specified detail
+ message and cause.
+ <p/>
+ Note that the detail message associated with <code>cause</code> is <i>not</i>
+ automatically incorporated in this runtime exception's detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response instance for which the processing failed.</dd>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getCause()</code></a> method). (A <code>null</code> value is permitted,
+                and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Response,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ResponseProcessingException</h4>
+<pre>public&nbsp;ResponseProcessingException&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message. The cause is not initialized, and may subsequently be initialized
+ by a call to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink"><code>Throwable.initCause(java.lang.Throwable)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - the response instance for which the processing failed.</dd>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResponse()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResponse</h4>
+<pre class="methodSignature">public&nbsp;<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;getResponse()</pre>
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the HTTP response.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResponseProcessingException.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/RxInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/RxInvoker.html
new file mode 100644
index 0000000..f9e5389
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/RxInvoker.html
@@ -0,0 +1,1076 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>RxInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RxInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface RxInvoker" class="title">Interface RxInvoker&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - a type representing the asynchronous computation.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">RxInvoker&lt;T&gt;</span></pre>
+<div class="block">Uniform interface for reactive invocation of HTTP methods. All reactive invokers must
+ implement this interface. The type parameter <code>T</code> represents the Java type of an asynchronous
+ computation. All API implementations MUST support the default reactive invoker based on
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client"><code>CompletionStageRxInvoker</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;get()</pre>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;delete()</pre>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;head()</pre>
+<div class="block">Invoke HTTP HEAD method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;options()</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;trace()</pre>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;R&gt;&nbsp;<a href="RxInvoker.html" title="type parameter in RxInvoker">T</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>R</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response wrapped in the completion aware type..</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a
+                                                        filter or during conversion of the response entity data to an
+                                                        instance of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response returned by the
+                                                        server is not
+                                                        <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                                        <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/RxInvokerProvider.html b/apidocs/2.1.6/javax/ws/rs/client/RxInvokerProvider.html
new file mode 100644
index 0000000..5d0dd06
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/RxInvokerProvider.html
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>RxInvokerProvider (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RxInvokerProvider (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvokerProvider.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface RxInvokerProvider" class="title">Interface RxInvokerProvider&lt;T extends <a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - <code>RxInvoker</code> subclass type.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">RxInvokerProvider&lt;T extends <a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;</span></pre>
+<div class="block"><a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> provider.
+ <p>
+ <code>RxInvokerProvider</code> must be registered in the client runtime using <a href="../core/Configurable.html#register(java.lang.Class)"><code>Configurable.register(Class)</code></a>.
+ It provides a way to plug-in support for other reactive implementations,
+ see <a href="Invocation.Builder.html#rx(java.lang.Class)"><code>Invocation.Builder.rx(Class)</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Pavel Bucek, Santiago Pericas-Geertsen</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRxInvoker(javax.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">getRxInvoker</a></span>&#8203;(<a href="SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a>&nbsp;syncInvoker,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Get <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> implementation instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isProviderFor(java.lang.Class)">isProviderFor</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Determine if this is a provider for the given <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isProviderFor(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isProviderFor</h4>
+<pre class="methodSignature">boolean&nbsp;isProviderFor&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
+<div class="block">Determine if this is a provider for the given <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>clazz</code> - <code>RxInvoker</code> subclass.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when this provider provides given <code>RxInvoker</code> subclass, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRxInvoker(javax.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getRxInvoker</h4>
+<pre class="methodSignature"><a href="RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a>&nbsp;getRxInvoker&#8203;(<a href="SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a>&nbsp;syncInvoker,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</pre>
+<div class="block">Get <a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> implementation instance.
+ <p>
+ The returned instance has to be thread safe.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>syncInvoker</code> - <code>SyncInvoker</code> used to execute current request.</dd>
+<dd><code>executorService</code> - executor service, which should be used for executing reactive callbacks invocations.
+                        It can be <code>null</code>; in that case it's up to the implementation to choose the best
+                        <code>ExecutorService</code> in given environment.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>instance of the <code>RxInvoker</code> subclass.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ClientBuilder.html#executorService(java.util.concurrent.ExecutorService)"><code>ClientBuilder.executorService(ExecutorService)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RxInvokerProvider.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/SyncInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/SyncInvoker.html
new file mode 100644
index 0000000..bb851e6
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/SyncInvoker.html
@@ -0,0 +1,1072 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SyncInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SyncInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SyncInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface SyncInvoker" class="title">Interface SyncInvoker</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SyncInvoker</span></pre>
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.Class)">delete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Class)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(java.lang.Class)">options</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(java.lang.Class)">trace</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="get()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;get()</pre>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the invocation processing has failed.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="get(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;get&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;put&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+          <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>post</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;post&#8203;(<a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+           <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;delete()</pre>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;delete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="delete(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>delete</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;delete&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="head()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>head</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;head()</pre>
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;options()</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;options&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="options(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>options</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;options&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;trace()</pre>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;trace&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="trace(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>trace</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;trace&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+               Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+               <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+               the entity variant information.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - Java type the response entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified response type is not
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>method</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;method&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+             <a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+             <a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</pre>
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - generic response entity type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - method name.</dd>
+<dd><code>entity</code> - request entity, including it's full <a href="../core/Variant.html" title="class in javax.ws.rs.core"><code>Variant</code></a> information.
+                     Any variant-related HTTP headers previously set (namely <code>Content-Type</code>,
+                     <code>Content-Language</code> and <code>Content-Encoding</code>) will be overwritten using
+                     the entity variant information.</dd>
+<dd><code>responseType</code> - representation of a generic Java type the response
+                     entity will be converted to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>invocation response.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></code> - in case processing of a received HTTP response fails (e.g. in a filter
+                                     or during conversion of the response entity data to an instance
+                                     of a particular Java type).</dd>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - in case the request processing or subsequent I/O operation fails.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - in case the response status code of the response
+                                     returned by the server is not
+                                     <a href="../core/Response.Status.Family.html#SUCCESSFUL"><code>successful</code></a> and the specified generic response type does not represent
+                                     <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SyncInvoker.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/WebTarget.html b/apidocs/2.1.6/javax/ws/rs/client/WebTarget.html
new file mode 100644
index 0000000..1086d58
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/WebTarget.html
@@ -0,0 +1,738 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>WebTarget (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WebTarget (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebTarget.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.client</a></div>
+<h2 title="Interface WebTarget" class="title">Interface WebTarget</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">WebTarget</span>
+extends <a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&gt;</pre>
+<div class="block">A resource target identified by the resource URI.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI identifying the resource.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current
+ resource target.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to
+ the existing set of matrix parameters of the current final segment of the
+ URI of the current target instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of
+ the current target instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI
+ of the current target instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#request()">request</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#request(java.lang.String...)">request</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#request(javax.ws.rs.core.MediaType...)">request</a></span>&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied encoded value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-encoded value pairs.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.core.<a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></h3>
+<code><a href="../core/Configurable.html#getConfiguration()">getConfiguration</a>, <a href="../core/Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="../core/Configurable.html#register(java.lang.Class)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,int)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="../core/Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Get the URI identifying the resource.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the resource URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUriBuilder</h4>
+<pre class="methodSignature"><a href="../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;getUriBuilder()</pre>
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current
+ resource target. The returned URI builder is detached from the target,
+ i.e. any updates in the URI builder MUST NOT have any effects on the
+ URI of the originating target.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized URI builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of
+ the current target instance.
+ <p>
+ When constructing the final path, a '/' separator will be inserted between
+ the existing path and the supplied path if necessary. Existing '/' characters
+ are preserved thus a single value can represent multiple URI path segments.
+ </p>
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>NullPointerException</code></a>
+ is thrown.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+                          boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>NullPointerException</code></a>
+ is thrown.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in template values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplateFromEncoded</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;resolveTemplateFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied encoded value.
+
+ A template with a matching name will be replaced by the supplied value.
+ Value is converted to <code>String</code> using its <code>toString()</code> method and is then
+ encoded to match the rules of the URI component to which they pertain.  All % characters in
+ the stringified values that are not followed by two hexadecimal numbers will be encoded.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>NullPointerException</code></a>
+ is thrown.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - encoded value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored, i.e. same <code>WebTarget</code>
+ instance is returned.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance or the same target instance in case the input name-value map
+         is empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the name-value map or any of the names or values in the map
+                              is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                           boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.
+
+ A call to the method with an empty parameter map is ignored, i.e. same <code>WebTarget</code>
+ instance is returned.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in template values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance or the same target instance in case the input name-value map
+         is empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the name-value map or any of the names or values in the map
+                              is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplatesFromEncoded(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplatesFromEncoded</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;resolveTemplatesFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-encoded value pairs.
+
+ All templates  with their name matching one of the keys in the supplied map will be replaced
+ by the value in the supplied map. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain.  All % characters in
+ the stringified values that are not followed by two hexadecimal numbers
+ will be encoded.
+
+ A call to the method with an empty parameter map is ignored, i.e. same <code>WebTarget</code>
+ instance is returned.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their encoded values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance or the same target instance in case the input name-value map
+         is empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the name-value map or any of the names or encoded values in the map
+                              is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="matrixParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>matrixParam</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;matrixParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to
+ the existing set of matrix parameters of the current final segment of the
+ URI of the current target instance.
+
+ If multiple values are supplied the parameter will be added once per value. In case a single
+ <code>null</code> value is entered, all parameters with that name in the current final path segment
+ are removed (if present) from the collection of last segment matrix parameters inherited from
+ the current target.
+ <p>
+ Note that the matrix parameters are tied to a particular path segment; appending
+ a value to an existing matrix parameter name will not affect the position of
+ the matrix parameter in the URI path.
+ </p>
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the matrix parameter value(s), each object will be converted
+               to a <code>String</code> using its <code>toString()</code> method. Stringified
+               values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the parameter name is <code>null</code> or if there are multiple
+                              values present and any of those values is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="queryParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queryParam</h4>
+<pre class="methodSignature"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;queryParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI
+ of the current target instance.
+
+ If multiple values are supplied the parameter will be added once per value. In case a single
+ <code>null</code> value is entered, all parameters with that name are removed (if present) from
+ the collection of query parameters inherited from the current target.
+ <p>
+ A snapshot of the present configuration of the current (parent) target
+ instance is taken and is inherited by the newly constructed (child) target
+ instance.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the query parameter name, may contain URI template parameters</dd>
+<dd><code>values</code> - the query parameter value(s), each object will be converted
+               to a <code>String</code> using its <code>toString()</code> method. Stringified
+               values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new target instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the parameter name is <code>null</code> or if there are multiple
+                              values present and any of those values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="request()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>request</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;request()</pre>
+<div class="block">Start building a request to the targeted web resource.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder for a request targeted at the URI referenced by this target instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="request(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>request</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;request&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;acceptedResponseTypes)</pre>
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.
+ <p>
+ Invoking this method is identical to:
+ </p>
+ <pre>
+ webTarget.request().accept(types);
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>acceptedResponseTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder for a request targeted at the URI referenced by this target instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="request(javax.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>request</h4>
+<pre class="methodSignature"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a>&nbsp;request&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</pre>
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.
+ <p>
+ Invoking this method is identical to:
+ </p>
+ <pre>
+ webTarget.request().accept(types);
+ </pre></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>acceptedResponseTypes</code> - accepted response media types.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>builder for a request targeted at the URI referenced by this target instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WebTarget.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/AsyncInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/AsyncInvoker.html
new file mode 100644
index 0000000..2e47b5b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/AsyncInvoker.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.AsyncInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.AsyncInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.AsyncInvoker" class="title">Uses of Interface<br>javax.ws.rs.client.AsyncInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#async()">async</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the asynchronous uniform request invocation interface to
+ asynchronously invoke the built request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/Client.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/Client.html
new file mode 100644
index 0000000..d9ed8aa
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/Client.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.Client (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.Client (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Client.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.Client" class="title">Uses of Interface<br>javax.ws.rs.client.Client</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Client.html" title="interface in javax.ws.rs.client">Client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Client.html" title="interface in javax.ws.rs.client">Client</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../Client.html" title="interface in javax.ws.rs.client">Client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a new client instance using all the configuration previously specified
+ in this client builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../ClientRequestContext.html#getClient()">getClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the client instance associated with the request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#newClient()">newClient</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="../Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder implementation
+ class provided by the implementation provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#newClient(javax.ws.rs.core.Configuration)">newClient</a></span>&#8203;(<a href="../../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create a new custom-configured <a href="../Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Client.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientBuilder.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientBuilder.html
new file mode 100644
index 0000000..d09a10e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientBuilder.html
@@ -0,0 +1,244 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.client.ClientBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.client.ClientBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientBuilder.html" title="class in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.client.ClientBuilder" class="title">Uses of Class<br>javax.ws.rs.client.ClientBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#connectTimeout(long,java.util.concurrent.TimeUnit)">connectTimeout</a></span>&#8203;(long&nbsp;timeout,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the connect timeout.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#executorService(java.util.concurrent.ExecutorService)">executorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#hostnameVerifier(javax.net.ssl.HostnameVerifier)">hostnameVerifier</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">HostnameVerifier</a>&nbsp;verifier)</code></th>
+<td class="colLast">
+<div class="block">Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's
+ identification information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#keyStore(java.security.KeyStore,char%5B%5D)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        char[]&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#keyStore(java.security.KeyStore,java.lang.String)">keyStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;keyStore,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;password)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side key store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#newBuilder()">newBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>ClientBuilder</code> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#readTimeout(long,java.util.concurrent.TimeUnit)">readTimeout</a></span>&#8203;(long&nbsp;timeout,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the read timeout.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)">scheduledExecutorService</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ScheduledExecutorService</a>&nbsp;scheduledExecutorService)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>ScheduledExecutorService</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#sslContext(javax.net.ssl.SSLContext)">sslContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html?is-external=true" title="class or interface in javax.net.ssl" class="externalLink">SSLContext</a>&nbsp;sslContext)</code></th>
+<td class="colLast">
+<div class="block">Set the SSL context that will be used when creating secured transport connections
+ to server endpoints from <a href="../WebTarget.html" title="interface in javax.ws.rs.client"><code>web targets</code></a> created by the client
+ instance that is using this SSL context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#trustStore(java.security.KeyStore)">trustStore</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/security/KeyStore.html?is-external=true" title="class or interface in java.security" class="externalLink">KeyStore</a>&nbsp;trustStore)</code></th>
+<td class="colLast">
+<div class="block">Set the client-side trust store.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../ClientBuilder.html#withConfig(javax.ws.rs.core.Configuration)">withConfig</a></span>&#8203;(<a href="../../core/Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientBuilder.html" title="class in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientRequestContext.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientRequestContext.html
new file mode 100644
index 0000000..22d203d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientRequestContext.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.ClientRequestContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.ClientRequestContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.ClientRequestContext" class="title">Uses of Interface<br>javax.ws.rs.client.ClientRequestContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestFilter.</span><code><span class="memberNameLink"><a href="../ClientRequestFilter.html#filter(javax.ws.rs.client.ClientRequestContext)">filter</a></span>&#8203;(<a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a client
+ transport layer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseFilter.</span><code><span class="memberNameLink"><a href="../ClientResponseFilter.html#filter(javax.ws.rs.client.ClientRequestContext,javax.ws.rs.client.ClientResponseContext)">filter</a></span>&#8203;(<a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+      <a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="../ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>request filter</code></a> or when the
+ HTTP invocation returns).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientRequestFilter.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientRequestFilter.html
new file mode 100644
index 0000000..66d6a89
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientRequestFilter.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.ClientRequestFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.ClientRequestFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestFilter.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.ClientRequestFilter" class="title">Uses of Interface<br>javax.ws.rs.client.ClientRequestFilter</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.client.ClientRequestFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientRequestFilter.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientResponseContext.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientResponseContext.html
new file mode 100644
index 0000000..6c7f7d7
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientResponseContext.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.ClientResponseContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.ClientResponseContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.ClientResponseContext" class="title">Uses of Interface<br>javax.ws.rs.client.ClientResponseContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseFilter.</span><code><span class="memberNameLink"><a href="../ClientResponseFilter.html#filter(javax.ws.rs.client.ClientRequestContext,javax.ws.rs.client.ClientResponseContext)">filter</a></span>&#8203;(<a href="../ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a>&nbsp;requestContext,
+      <a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="../ClientRequestFilter.html" title="interface in javax.ws.rs.client"><code>request filter</code></a> or when the
+ HTTP invocation returns).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseContext.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientResponseFilter.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientResponseFilter.html
new file mode 100644
index 0000000..cb4f8e1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/ClientResponseFilter.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.ClientResponseFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.ClientResponseFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseFilter.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.ClientResponseFilter" class="title">Uses of Interface<br>javax.ws.rs.client.ClientResponseFilter</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.client.ClientResponseFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ClientResponseFilter.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/CompletionStageRxInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/CompletionStageRxInvoker.html
new file mode 100644
index 0000000..c0afa98
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/CompletionStageRxInvoker.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.CompletionStageRxInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.CompletionStageRxInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.CompletionStageRxInvoker" class="title">Uses of Interface<br>javax.ws.rs.client.CompletionStageRxInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#rx()">rx</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Access the default reactive invoker based on <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/Entity.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/Entity.html
new file mode 100644
index 0000000..a5ad6c0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/Entity.html
@@ -0,0 +1,582 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.client.Entity (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.client.Entity (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Entity.html" title="class in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.client.Entity" class="title">Uses of Class<br>javax.ws.rs.client.Entity</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,java.lang.String)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,javax.ws.rs.core.MediaType)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,javax.ws.rs.core.Variant)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#entity(T,javax.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../../core/Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../../core/Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#form(javax.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../../core/Form.html" title="class in javax.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../../core/Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#form(javax.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#html(T)">html</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../../core/MediaType.html#TEXT_HTML">"text/html"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#json(T)">json</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_JSON">"application/json"</a> entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#text(T)">text</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../../core/MediaType.html#TEXT_PLAIN">"text/plain"</a> entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#xhtml(T)">xhtml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../Entity.html#xml(T)">xml</a></span>&#8203;(T&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../../core/MediaType.html#APPLICATION_XML">"application/xml"</a> entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#build(java.lang.String,javax.ws.rs.client.Entity)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+     <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name and
+ request entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPost(javax.ws.rs.client.Entity)">buildPost</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a POST request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPut(javax.ws.rs.client.Entity)">buildPut</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a PUT request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#post(javax.ws.rs.client.Entity,java.lang.Class)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../RxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#put(javax.ws.rs.client.Entity,java.lang.Class)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../SyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Entity.html" title="class in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/Invocation.Builder.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/Invocation.Builder.html
new file mode 100644
index 0000000..0168063
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/Invocation.Builder.html
@@ -0,0 +1,269 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.Invocation.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.Invocation.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.Invocation.Builder" class="title">Uses of Interface<br>javax.ws.rs.client.Invocation.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#accept(java.lang.String...)">accept</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#accept(javax.ws.rs.core.MediaType...)">accept</a></span>&#8203;(<a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#acceptEncoding(java.lang.String...)">acceptEncoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable encodings.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#acceptLanguage(java.lang.String...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#acceptLanguage(java.util.Locale...)">acceptLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;locales)</code></th>
+<td class="colLast">
+<div class="block">Add acceptable languages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../../core/CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#cookie(java.lang.String,java.lang.String)">cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#cookie(javax.ws.rs.core.Cookie)">cookie</a></span>&#8203;(<a href="../../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#headers(javax.ws.rs.core.MultivaluedMap)">headers</a></span>&#8203;(<a href="../../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#invocation(javax.ws.rs.core.Link)">invocation</a></span>&#8203;(<a href="../../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build an invocation builder from a link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#request()">request</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#request(java.lang.String...)">request</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#request(javax.ws.rs.core.MediaType...)">request</a></span>&#8203;(<a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/Invocation.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/Invocation.html
new file mode 100644
index 0000000..3377a3e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/Invocation.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.Invocation (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.Invocation (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.Invocation" class="title">Uses of Interface<br>javax.ws.rs.client.Invocation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#build(java.lang.String)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#build(java.lang.String,javax.ws.rs.client.Entity)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method,
+     <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a request invocation using an arbitrary request method name and
+ request entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildDelete()">buildDelete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a DELETE request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildGet()">buildGet</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build a GET request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPost(javax.ws.rs.client.Entity)">buildPost</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a POST request invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#buildPut(javax.ws.rs.client.Entity)">buildPut</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Build a PUT request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../Invocation.html#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set a new property in the context of a request represented by this invocation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Invocation.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/InvocationCallback.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/InvocationCallback.html
new file mode 100644
index 0000000..7294bd1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/InvocationCallback.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.InvocationCallback (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.InvocationCallback (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.InvocationCallback" class="title">Uses of Interface<br>javax.ws.rs.client.InvocationCallback</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#delete(javax.ws.rs.client.InvocationCallback)">delete</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#get(javax.ws.rs.client.InvocationCallback)">get</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#head(javax.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;<a href="../../core/Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.InvocationCallback)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#options(javax.ws.rs.client.InvocationCallback)">options</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">post</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)">put</a></span>&#8203;(<a href="../Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../Invocation.html#submit(javax.ws.rs.client.InvocationCallback)">submit</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and register an
+ <a href="../InvocationCallback.html" title="interface in javax.ws.rs.client"><code>InvocationCallback</code></a> to process the future result of the invocation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../AsyncInvoker.html#trace(javax.ws.rs.client.InvocationCallback)">trace</a></span>&#8203;(<a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;T&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InvocationCallback.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/ResponseProcessingException.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/ResponseProcessingException.html
new file mode 100644
index 0000000..eda8c80
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/ResponseProcessingException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.client.ResponseProcessingException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.client.ResponseProcessingException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResponseProcessingException.html" title="class in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.client.ResponseProcessingException" class="title">Uses of Class<br>javax.ws.rs.client.ResponseProcessingException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.client.ResponseProcessingException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResponseProcessingException.html" title="class in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/RxInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/RxInvoker.html
new file mode 100644
index 0000000..0737e73
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/RxInvoker.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.RxInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.RxInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.RxInvoker" class="title">Uses of Interface<br>javax.ws.rs.client.RxInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="../package-summary.html">javax.ws.rs.client</a> with type parameters of type <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../RxInvokerProvider.html" title="interface in javax.ws.rs.client">RxInvokerProvider</a>&lt;T extends <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block"><a href="../RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Subinterfaces of <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a> in <a href="../package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></span></code></th>
+<td class="colLast">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> with type parameters of type <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="../RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;<br>T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../Invocation.Builder.html#rx(java.lang.Class)">rx</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
+<td class="colLast">
+<div class="block">Access a reactive invoker based on a <a href="../RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> subclass provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/RxInvokerProvider.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/RxInvokerProvider.html
new file mode 100644
index 0000000..c4cc0d6
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/RxInvokerProvider.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.RxInvokerProvider (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.RxInvokerProvider (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvokerProvider.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.RxInvokerProvider" class="title">Uses of Interface<br>javax.ws.rs.client.RxInvokerProvider</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.client.RxInvokerProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RxInvokerProvider.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/SyncInvoker.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/SyncInvoker.html
new file mode 100644
index 0000000..742151f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/SyncInvoker.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.SyncInvoker (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.SyncInvoker (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.SyncInvoker" class="title">Uses of Interface<br>javax.ws.rs.client.SyncInvoker</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subinterfaces of <a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a> in <a href="../package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../RxInvokerProvider.html" title="type parameter in RxInvokerProvider">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvokerProvider.</span><code><span class="memberNameLink"><a href="../RxInvokerProvider.html#getRxInvoker(javax.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)">getRxInvoker</a></span>&#8203;(<a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a>&nbsp;syncInvoker,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">ExecutorService</a>&nbsp;executorService)</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> implementation instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SyncInvoker.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/class-use/WebTarget.html b/apidocs/2.1.6/javax/ws/rs/client/class-use/WebTarget.html
new file mode 100644
index 0000000..52d4b4d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/class-use/WebTarget.html
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.client.WebTarget (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.client.WebTarget (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebTarget.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.client.WebTarget" class="title">Uses of Interface<br>javax.ws.rs.client.WebTarget</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a> in <a href="../package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.client</a> that return <a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending a matrix parameter to
+ the existing set of matrix parameters of the current final segment of the
+ URI of the current target instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by appending path to the URI of
+ the current target instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by configuring a query parameter on the URI
+ of the current target instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving a URI template with a given <code>name</code>
+ in the URI of the current target instance using a supplied encoded value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../WebTarget.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>WebTarget</code> instance by resolving one or more URI templates
+ in the URI of the current target instance using supplied name-encoded value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(java.lang.String)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(java.net.URI)">target</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(javax.ws.rs.core.Link)">target</a></span>&#8203;(<a href="../../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../Client.html#target(javax.ws.rs.core.UriBuilder)">target</a></span>&#8203;(<a href="../../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a> in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a> with parameters of type <a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../../sse/SseEventSource.Builder.html#target(javax.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../../sse/SseEventSource.html#target(javax.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="../../sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to
+ configure and fine-tune various aspects of a newly prepared event source instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WebTarget.html" title="interface in javax.ws.rs.client">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/package-summary.html b/apidocs/2.1.6/javax/ws/rs/client/package-summary.html
new file mode 100644
index 0000000..67d8f67
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/package-summary.html
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.client (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.client (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.ws.rs.client</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block"><h1>The Client API</h1>
+
+ The Client API is a Java based API used to access Web resources.
+ It is not restricted to resources implemented using this API.
+ It provides a higher-level abstraction compared to a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>plain HTTP communication API</code></a> as well as integration with extension
+ providers, in order to enable concise and efficient implementation of
+ reusable client-side solutions that leverage existing and well
+ established client-side implementations of HTTP-based communication.
+ <p/>
+ The Client API encapsulates the Uniform Interface Constraint &ndash;
+ a key constraint of the REST architectural style &ndash; and associated data
+ elements as client-side Java artifacts and supports a pluggable architecture
+ by defining multiple extension points.
+
+ <h2>Client API Bootstrapping and Configuration</h2>
+ The main entry point to the API is a <a href="ClientBuilder.html" title="class in javax.ws.rs.client"><code>ClientBuilder</code></a>
+ that is used to bootstrap <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instances -
+ <a href="../core/Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a>, heavy-weight objects
+ that manage the underlying communication infrastructure and serve as the root
+ objects for accessing any Web resource. The following example illustrates the
+ bootstrapping and configuration of a <code>Client</code> instance:
+ <pre>
+   Client client = ClientBuilder.newClient();
+
+   client.property("MyProperty", "MyValue")
+         .register(MyProvider.class)
+         .register(MyFeature.class);
+ </pre>
+
+ <h2>Accessing Web Resources</h2>
+ A Web resource can be accessed using a fluent API in which method invocations
+ are chained to configure and ultimately submit an HTTP request. The following
+ example gets a <code>text/plain</code> representation of the resource identified by
+ <code>"http://example.org/hello"</code>:
+ <pre>
+   Client client = ClientBuilder.newClient();
+   Response res = client.target("http://example.org/hello").request("text/plain").get();
+ </pre>
+ Conceptually, the steps required to submit a request are the following:
+ <ol>
+   <li>obtain an <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance</li>
+   <li>create a <a href="WebTarget.html" title="interface in javax.ws.rs.client"><code>WebTarget</code></a> pointing at a Web resource</li>
+   <li><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client"><code>build</code></a> a request</li>
+   <li>submit a request to directly retrieve a response or get a prepared
+       <a href="Invocation.html" title="interface in javax.ws.rs.client"><code>Invocation</code></a> for later submission</li>
+ </ol>
+
+ As illustrated above, individual Web resources are in the Client API
+ represented as resource targets. Each <code>WebTarget</code> instance is bound to a
+ concrete URI, e.g. <code>"http://example.org/messages/123"</code>,
+ or a URI template, e.g. <code>"http://example.org/messages/{id}"</code>.
+ That way a single target can either point at a particular resource or represent
+ a larger group of resources (that e.g. share a common configuration) from which
+ concrete resources can be later derived:
+ <pre>
+   // Parent target for all messages
+   WebTarget messages = client.target("http://example.org/messages/{id}");
+
+   // New target for http://example.org/messages/123
+   WebTarget msg123 = messages.resolveTemplate("id", 123);
+
+   // New target for http://example.org/messages/456
+   WebTarget msg456 = messages.resolveTemplate("id", 456);
+ </pre>
+
+<h2>Generic Invocations</h2>
+ An <a href="Invocation.html" title="interface in javax.ws.rs.client"><code>Invocation</code></a> is a request that has been prepared
+ and is ready for execution.
+ Invocations provide a generic interface that enables a separation of concerns
+ between the creator and the submitter. In particular, the submitter does not
+ need to know how the invocation was prepared, but only whether it should be
+ executed synchronously or asynchronously.
+ <pre>
+   Invocation inv1 = client.target("http://example.org/atm/balance")
+       .queryParam("card", "111122223333").queryParam("pin", "9876")
+       .request("text/plain").buildGet();
+   Invocation inv2 = client.target("http://example.org/atm/withdrawal")
+       .queryParam("card", "111122223333").queryParam("pin", "9876")
+       .request().buildPost(text("50.0")));
+
+   Collection<Invocation> invs = Arrays.asList(inv1, inv2);
+   // Executed by the submitter
+   Collection<Response> ress = Collections.transform(invs, new F<Invocation, Response>() {
+      public Response apply(Invocation inv) {return inv.invoke(); }
+   });
+ </pre></div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AsyncInvoker.html" title="interface in javax.ws.rs.client">AsyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Client.html" title="interface in javax.ws.rs.client">Client</a></th>
+<td class="colLast">
+<div class="block">Client is the main entry point to the fluent API used to build and execute client
+ requests in order to consume responses returned.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientRequestContext.html" title="interface in javax.ws.rs.client">ClientRequestContext</a></th>
+<td class="colLast">
+<div class="block">Client request filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientRequestFilter.html" title="interface in javax.ws.rs.client">ClientRequestFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by client request filters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientResponseContext.html" title="interface in javax.ws.rs.client">ClientResponseContext</a></th>
+<td class="colLast">
+<div class="block">Client response filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientResponseFilter.html" title="interface in javax.ws.rs.client">ClientResponseFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by client response filters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client">CompletionStageRxInvoker</a></th>
+<td class="colLast">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Invocation.html" title="interface in javax.ws.rs.client">Invocation</a></th>
+<td class="colLast">
+<div class="block">A client request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;RESPONSE&gt;</th>
+<td class="colLast">
+<div class="block">Callback that can be implemented to receive the asynchronous processing
+ events from the invocation processing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="RxInvokerProvider.html" title="interface in javax.ws.rs.client">RxInvokerProvider</a>&lt;T extends <a href="RxInvoker.html" title="interface in javax.ws.rs.client">RxInvoker</a>&gt;</th>
+<td class="colLast">
+<div class="block"><a href="RxInvoker.html" title="interface in javax.ws.rs.client"><code>RxInvoker</code></a> provider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SyncInvoker.html" title="interface in javax.ws.rs.client">SyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></th>
+<td class="colLast">
+<div class="block">Main entry point to the client API used to bootstrap <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>
+ instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ResponseProcessingException.html" title="class in javax.ws.rs.client">ResponseProcessingException</a></th>
+<td class="colLast">
+<div class="block">Client-side runtime processing exception thrown to indicate that
+ response processing has failed (e.g.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/package-tree.html b/apidocs/2.1.6/javax/ws/rs/client/package-tree.html
new file mode 100644
index 0000000..111eaf2
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/package-tree.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.client Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.client Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.ws.rs.client</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="ClientBuilder.html" title="class in javax.ws.rs.client"><span class="typeNameLink">ClientBuilder</span></a> (implements javax.ws.rs.core.<a href="../core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;C&gt;)</li>
+<li class="circle">javax.ws.rs.client.<a href="Entity.html" title="class in javax.ws.rs.client"><span class="typeNameLink">Entity</span></a>&lt;T&gt;</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="../ProcessingException.html" title="class in javax.ws.rs"><span class="typeNameLink">ProcessingException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="ResponseProcessingException.html" title="class in javax.ws.rs.client"><span class="typeNameLink">ResponseProcessingException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="AsyncInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">AsyncInvoker</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="ClientRequestContext.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientRequestContext</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="ClientRequestFilter.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientRequestFilter</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="ClientResponseContext.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientResponseContext</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="ClientResponseFilter.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientResponseFilter</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="../core/Configurable.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;C&gt;
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="Client.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Client</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="WebTarget.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">WebTarget</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.client.<a href="Invocation.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Invocation</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="InvocationCallback.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">InvocationCallback</span></a>&lt;RESPONSE&gt;</li>
+<li class="circle">javax.ws.rs.client.<a href="RxInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">RxInvoker</span></a>&lt;T&gt;
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">CompletionStageRxInvoker</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.client.<a href="RxInvokerProvider.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">RxInvokerProvider</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.client.<a href="SyncInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">SyncInvoker</span></a>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="Invocation.Builder.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Invocation.Builder</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/client/package-use.html b/apidocs/2.1.6/javax/ws/rs/client/package-use.html
new file mode 100644
index 0000000..40cca04
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/client/package-use.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Package javax.ws.rs.client (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.ws.rs.client (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.ws.rs.client" class="title">Uses of Package<br>javax.ws.rs.client</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.client</a> used by <a href="package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AsyncInvoker.html#javax.ws.rs.client">AsyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for asynchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Client.html#javax.ws.rs.client">Client</a></th>
+<td class="colLast">
+<div class="block">Client is the main entry point to the fluent API used to build and execute client
+ requests in order to consume responses returned.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientBuilder.html#javax.ws.rs.client">ClientBuilder</a></th>
+<td class="colLast">
+<div class="block">Main entry point to the client API used to bootstrap <a href="Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>
+ instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientRequestContext.html#javax.ws.rs.client">ClientRequestContext</a></th>
+<td class="colLast">
+<div class="block">Client request filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientResponseContext.html#javax.ws.rs.client">ClientResponseContext</a></th>
+<td class="colLast">
+<div class="block">Client response filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CompletionStageRxInvoker.html#javax.ws.rs.client">CompletionStageRxInvoker</a></th>
+<td class="colLast">
+<div class="block">Reactive invoker based <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>CompletionStage</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Entity.html#javax.ws.rs.client">Entity</a></th>
+<td class="colLast">
+<div class="block">Encapsulates message entity including the associated variant information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Invocation.html#javax.ws.rs.client">Invocation</a></th>
+<td class="colLast">
+<div class="block">A client request invocation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Invocation.Builder.html#javax.ws.rs.client">Invocation.Builder</a></th>
+<td class="colLast">
+<div class="block">A client request invocation builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/InvocationCallback.html#javax.ws.rs.client">InvocationCallback</a></th>
+<td class="colLast">
+<div class="block">Callback that can be implemented to receive the asynchronous processing
+ events from the invocation processing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RxInvoker.html#javax.ws.rs.client">RxInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for reactive invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SyncInvoker.html#javax.ws.rs.client">SyncInvoker</a></th>
+<td class="colLast">
+<div class="block">Uniform interface for synchronous invocation of HTTP methods.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebTarget.html#javax.ws.rs.client">WebTarget</a></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.client</a> used by <a href="../sse/package-summary.html">javax.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebTarget.html#javax.ws.rs.sse">WebTarget</a></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/AsyncResponse.html b/apidocs/2.1.6/javax/ws/rs/container/AsyncResponse.html
new file mode 100644
index 0000000..823a3e1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/AsyncResponse.html
@@ -0,0 +1,810 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>AsyncResponse (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AsyncResponse (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncResponse.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface AsyncResponse" class="title">Interface AsyncResponse</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">AsyncResponse</span></pre>
+<div class="block">An injectable and asynchronous response that provides means for asynchronous server side
+ response processing.
+ <p>
+ A new instance of <code>AsyncResponse</code> may be injected into a
+ <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a> parameter using
+ the <a href="Suspended.html" title="annotation in javax.ws.rs.container"><code>&#64;Suspended</code></a> annotation.
+ </p>
+ Each asynchronous response instance is bound to the running request and can be used to
+ asynchronously provide the request processing result or otherwise manipulate the suspended
+ client connection. The available operations include:
+ <ul>
+ <li>updating suspended state data (time-out value, response ...)</li>
+ <li>resuming the suspended request processing</li>
+ <li>canceling the suspended request processing</li>
+ </ul>
+ <p>
+ Following example demonstrates the use of the <code>AsyncResponse</code> for asynchronous
+ HTTP request processing:
+ </p>
+ <pre>
+ &#64;Path("/messages/next")
+ public class MessagingResource {
+     private static final BlockingQueue&lt;AsyncResponse&gt; suspended =
+             new ArrayBlockingQueue&lt;AsyncResponse&gt;(5);
+
+     &#64;GET
+     public void readMessage(&#64;Suspended AsyncResponse ar) throws InterruptedException {
+         suspended.put(ar);
+     }
+
+     &#64;POST
+     public String postMessage(final String message) throws InterruptedException {
+         final AsyncResponse ar = suspended.take();
+         ar.resume(message); // resumes the processing of one GET request
+         return "Message sent";
+     }
+ }
+ </pre>
+ <p>
+ If the asynchronous response was suspended with a positive timeout value, and has
+ not been explicitly resumed before the timeout has expired, the processing
+ will be resumed once the specified timeout threshold is reached, provided a positive
+ timeout value was set on the response.
+ </p>
+ <p>
+ By default a timed-out asynchronous response is resumed with a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a>
+ that has <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a>
+ error response status code set. This default behavior may be overridden by
+ <a href="#setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)"><code>setting</code></a> a custom <a href="TimeoutHandler.html" title="interface in javax.ws.rs.container"><code>time-out handler</code></a>.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NO_TIMEOUT">NO_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">Constant specifying no suspend timeout value.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel()">cancel</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Cancel the suspended request processing.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel(int)">cancel</a></span>&#8203;(int&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Cancel the suspended request processing.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cancel(java.util.Date)">cancel</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</code></th>
+<td class="colLast">
+<div class="block">Cancel the suspended request processing.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCancelled()">isCancelled</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the asynchronous response instance has been cancelled.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDone()">isDone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the processing of a request this asynchronous response instance belongs to
+ has finished.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSuspended()">isSuspended</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the asynchronous response instance is in a suspended state.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Register an asynchronous processing lifecycle callback class to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.lang.Class...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;callbacks)</code></th>
+<td class="colLast">
+<div class="block">Register asynchronous processing lifecycle callback classes to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Register an asynchronous processing lifecycle callback instance to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,java.lang.Object...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;callbacks)</code></th>
+<td class="colLast">
+<div class="block">Register an asynchronous processing lifecycle callback instances to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resume(java.lang.Object)">resume</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Resume the suspended request processing using the provided response data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resume(java.lang.Throwable)">resume</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Resume the suspended request processing using the provided throwable.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeout(long,java.util.concurrent.TimeUnit)">setTimeout</a></span>&#8203;(long&nbsp;time,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set/update the suspend timeout.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)">setTimeoutHandler</a></span>&#8203;(<a href="TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="NO_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NO_TIMEOUT</h4>
+<pre>static final&nbsp;long NO_TIMEOUT</pre>
+<div class="block">Constant specifying no suspend timeout value.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.container.AsyncResponse.NO_TIMEOUT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="resume(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resume</h4>
+<pre class="methodSignature">boolean&nbsp;resume&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;response)</pre>
+<div class="block">Resume the suspended request processing using the provided response data.
+
+ The provided response data can be of any Java type that can be
+ returned from a <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>Resource method</code></a>.
+ <p>
+ The asynchronous response must be still in a <a href="#isSuspended()"><code>suspended</code></a> state
+ for this method to succeed.
+ </p>
+ <p>
+ By executing this method, the request is guaranteed to complete either successfully or
+ with an error. The data processing by the runtime follows the same path
+ as it would for the response data returned synchronously by a resource,
+ except that unmapped exceptions are not re-thrown by the runtime to be handled by
+ a hosting I/O container. Instead, any unmapped exceptions are propagated to the hosting
+ I/O container via a container-specific callback mechanism. Depending on the container
+ implementation, propagated unmapped exceptions typically result in an error status
+ being sent to the client and/or the connection being closed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - data to be sent back in response to the suspended request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been resumed, returns <code>false</code> in case
+         the request processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be resumed.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#resume(java.lang.Throwable)"><code>resume(Throwable)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="resume(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resume</h4>
+<pre class="methodSignature">boolean&nbsp;resume&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;response)</pre>
+<div class="block">Resume the suspended request processing using the provided throwable.
+
+ For the provided throwable same rules apply as for an exception thrown
+ by a <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>Resource method</code></a>.
+ <p>
+ By executing this method, the request is guaranteed to complete either successfully or
+ with an error. The throwable processing by the runtime follows the same path
+ as it would for the response data returned synchronously by a resource,
+ except that unmapped exceptions are not re-thrown by the runtime to be handled by
+ a hosting I/O container. Instead, any unmapped exceptions are propagated to the hosting
+ I/O container via a container-specific callback mechanism. Depending on the container
+ implementation, propagated unmapped exceptions typically result in an error status
+ being sent to the client and/or the connection being closed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - an exception to be raised in response to the suspended
+                 request.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the response has been resumed, returns <code>false</code> in case
+         the response is not <a href="#isSuspended()"><code>suspended</code></a> and could not be resumed.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#resume(java.lang.Object)"><code>resume(Object)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="cancel()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">boolean&nbsp;cancel()</pre>
+<div class="block">Cancel the suspended request processing.
+ <p>
+ When a request processing is cancelled using this method, the API implementation
+ MUST indicate to the client that the request processing has been cancelled by sending
+ back a <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a>
+ error response.
+ </p>
+ <p>
+ Invoking a <code>cancel(...)</code> method multiple times to cancel request processing has the same
+ effect as canceling the request processing only once. Invoking a <code>cancel(...)</code> method on
+ an asynchronous response instance that has already been cancelled or resumed has no effect and the
+ method call is ignored while returning <code>true</code>, in case the request has been cancelled previously.
+ Otherwise, in case the request has been resumed regularly (using a <code>resume(...) method</code>) or
+ resumed due to a time-out, method returns <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been cancelled, returns <code>false</code> in case
+         the request processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be cancelled
+         and is not <a href="#isCancelled()"><code>cancelled</code></a> already.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#cancel(int)"><code>cancel(int)</code></a>, 
+<a href="#cancel(java.util.Date)"><code>cancel(java.util.Date)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="cancel(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">boolean&nbsp;cancel&#8203;(int&nbsp;retryAfter)</pre>
+<div class="block">Cancel the suspended request processing.
+ <p>
+ When a request processing is cancelled using this method, the API implementation
+ MUST indicate to the client that the request processing has been cancelled by sending
+ back a <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a>
+ error response with a <code>Retry-After</code> header set to the value provided by the method
+ parameter.
+ </p>
+ <p>
+ Invoking a <code>cancel(...)</code> method multiple times to cancel request processing has the same
+ effect as canceling the request processing only once. Invoking a <code>cancel(...)</code> method on
+ an asynchronous response instance that has already been cancelled or resumed has no effect and the
+ method call is ignored while returning <code>true</code>, in case the request has been cancelled previously.
+ Otherwise, in case the request has been resumed regularly (using a <code>resume(...) method</code>) or
+ resumed due to a time-out, method returns <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a decimal integer number of seconds after the response is sent to the client that
+                   indicates how long the service is expected to be unavailable to the requesting
+                   client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been cancelled, returns <code>false</code> in case
+         the request processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be cancelled
+         and is not <a href="#isCancelled()"><code>cancelled</code></a> already.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#cancel()"><code>cancel()</code></a>, 
+<a href="#cancel(java.util.Date)"><code>cancel(java.util.Date)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="cancel(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cancel</h4>
+<pre class="methodSignature">boolean&nbsp;cancel&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;retryAfter)</pre>
+<div class="block">Cancel the suspended request processing.
+ <p>
+ When a request processing is cancelled using this method, the API implementation
+ MUST indicate to the client that the request processing has been cancelled by sending
+ back a <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503 (Service unavailable)</code></a>
+ error response with a <code>Retry-After</code> header set to the value provided by the method
+ parameter.
+ </p>
+ <p>
+ Invoking a <code>cancel(...)</code> method multiple times to cancel request processing has the same
+ effect as canceling the request processing only once. Invoking a <code>cancel(...)</code> method on
+ an asynchronous response instance that has already been cancelled or resumed has no effect and the
+ method call is ignored while returning <code>true</code>, in case the request has been cancelled previously.
+ Otherwise, in case the request has been resumed regularly (using a <code>resume(...) method</code>) or
+ resumed due to a time-out, method returns <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>retryAfter</code> - a date that indicates how long the service is expected to be unavailable to the
+                   requesting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request processing has been cancelled, returns <code>false</code> in case
+         the request processing is not <a href="#isSuspended()"><code>suspended</code></a> and could not be cancelled
+         and is not <a href="#isCancelled()"><code>cancelled</code></a> already.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#cancel()"><code>cancel()</code></a>, 
+<a href="#cancel(int)"><code>cancel(int)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isSuspended()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSuspended</h4>
+<pre class="methodSignature">boolean&nbsp;isSuspended()</pre>
+<div class="block">Check if the asynchronous response instance is in a suspended state.
+
+ Method returns <code>true</code> if this asynchronous response is still suspended and has
+ not finished processing yet (either by resuming or canceling the response).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this asynchronous response is in a suspend state, <code>false</code>
+         otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isCancelled()"><code>isCancelled()</code></a>, 
+<a href="#isDone()"><code>isDone()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isCancelled()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCancelled</h4>
+<pre class="methodSignature">boolean&nbsp;isCancelled()</pre>
+<div class="block">Check if the asynchronous response instance has been cancelled.
+
+ Method returns <code>true</code> if this asynchronous response has been canceled before
+ completion.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this task was canceled before completion.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isSuspended()"><code>isSuspended()</code></a>, 
+<a href="#isDone()"><code>isDone()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isDone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isDone</h4>
+<pre class="methodSignature">boolean&nbsp;isDone()</pre>
+<div class="block">Check if the processing of a request this asynchronous response instance belongs to
+ has finished.
+
+ Method returns <code>true</code> if the processing of a request this asynchronous response
+ is bound to is finished.
+ <p>
+ The request processing may be finished due to a normal termination, a suspend timeout, or
+ cancellation -- in all of these cases, this method will return <code>true</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this execution context has finished processing.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isSuspended()"><code>isSuspended()</code></a>, 
+<a href="#isCancelled()"><code>isCancelled()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setTimeout(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTimeout</h4>
+<pre class="methodSignature">boolean&nbsp;setTimeout&#8203;(long&nbsp;time,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set/update the suspend timeout.
+ <p>
+ The new suspend timeout values override any timeout value previously specified.
+ The asynchronous response must be still in a <a href="#isSuspended()"><code>suspended</code></a> state
+ for this method to succeed.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - suspend timeout value in the give time <code>unit</code>. Value lower
+             or equal to 0 causes the context to suspend indefinitely.</dd>
+<dd><code>unit</code> - suspend timeout value time unit.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the suspend time out has been set, returns <code>false</code> in case
+         the request processing is not in the <a href="#isSuspended()"><code>suspended</code></a> state.</dd>
+</dl>
+</li>
+</ul>
+<a id="setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTimeoutHandler</h4>
+<pre class="methodSignature">void&nbsp;setTimeoutHandler&#8203;(<a href="TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a>&nbsp;handler)</pre>
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.
+ <p>
+ The time-out handler will be invoked when the suspend period of this
+ asynchronous response times out. The job of the time-out handler is to
+ resolve the time-out situation by either
+ <ul>
+ <li>resuming the suspended response</li>
+ <li>cancelling the suspended response</li>
+ <li>extending the suspend period by setting a new suspend time-out</li>
+ </ul>
+ </p>
+ <p>
+ Note that in case the response is suspended <a href="#NO_TIMEOUT"><code>indefinitely</code></a>,
+ the time-out handler may never be invoked.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>handler</code> - response time-out handler.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback)</pre>
+<div class="block">Register an asynchronous processing lifecycle callback class to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>collection of registered callback interfaces. If the callback class does not
+         implement any recognized callback interfaces, the returned collection will be
+         empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the callback class is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;callback,
+                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;callbacks)</pre>
+<div class="block">Register asynchronous processing lifecycle callback classes to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback class.</dd>
+<dd><code>callbacks</code> - additional callback classes.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of registered classes and the callback interfaces registered for each class.
+         If a callback class does not implement any recognized callback interfaces, the
+         associated collection of registered interfaces for the class will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the callback classes is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback)</pre>
+<div class="block">Register an asynchronous processing lifecycle callback instance to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback instance implementing one or more of the recognized callback
+                 interfaces.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>collection of registered callback interfaces. If the callback class does not
+         implement any recognized callback interfaces, the returned collection will be
+         empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the callback instance is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&gt;&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;callback,
+                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;callbacks)</pre>
+<div class="block">Register an asynchronous processing lifecycle callback instances to receive lifecycle
+ events for the asynchronous response based on the implemented callback interfaces.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>callback</code> - callback instance.</dd>
+<dd><code>callbacks</code> - additional callback instances.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of registered classes and the callback interfaces registered for each class.
+         If a callback class does not implement any recognized callback interfaces, the
+         associated collection of registered interfaces for the class will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case any of the callback instances is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AsyncResponse.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/CompletionCallback.html b/apidocs/2.1.6/javax/ws/rs/container/CompletionCallback.html
new file mode 100644
index 0000000..73b87c4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/CompletionCallback.html
@@ -0,0 +1,261 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>CompletionCallback (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CompletionCallback (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionCallback.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface CompletionCallback" class="title">Interface CompletionCallback</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">CompletionCallback</span></pre>
+<div class="block">A request processing callback that receives request processing completion events.
+ <p>
+ A completion callback is invoked when the whole request processing is over, i.e.
+ once a response for the request has been processed and sent back to the client
+ or in when an unmapped exception or error is being propagated to the container.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onComplete(java.lang.Throwable)">onComplete</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</code></th>
+<td class="colLast">
+<div class="block">A completion callback notification method that will be invoked when the request
+ processing is finished, after a response is processed and is sent back to the
+ client or when an unmapped throwable has been propagated to the hosting I/O
+ container.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onComplete(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onComplete</h4>
+<pre class="methodSignature">void&nbsp;onComplete&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;throwable)</pre>
+<div class="block">A completion callback notification method that will be invoked when the request
+ processing is finished, after a response is processed and is sent back to the
+ client or when an unmapped throwable has been propagated to the hosting I/O
+ container.
+ <p>
+ An unmapped throwable is propagated to the hosting I/O container in case no
+ <a href="../ext/ExceptionMapper.html" title="interface in javax.ws.rs.ext"><code>exception mapper</code></a> has been found for
+ a throwable indicating a request processing failure.
+ In this case a non-<code>null</code> unmapped throwable instance is passed to the method.
+ Note that the throwable instance represents the actual unmapped exception thrown
+ during the request processing, before it has been wrapped into an I/O container-specific
+ exception that was used to propagate the throwable to the hosting I/O container.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>throwable</code> - is <code>null</code>, if the request processing has completed with a response
+                  that has been sent to the client. In case the request processing resulted
+                  in an unmapped exception or error that has been propagated to the hosting
+                  I/O container, this parameter contains the unmapped exception instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CompletionCallback.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ConnectionCallback.html b/apidocs/2.1.6/javax/ws/rs/container/ConnectionCallback.html
new file mode 100644
index 0000000..58668c4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ConnectionCallback.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ConnectionCallback (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionCallback (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionCallback.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ConnectionCallback" class="title">Interface ConnectionCallback</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ConnectionCallback</span></pre>
+<div class="block">Asynchronous request processing lifecycle callback that receives connection
+ related <a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><code>asynchronous response</code></a> lifecycle events.
+ <p>
+ Support for this type of callback by the runtime is OPTIONAL.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onDisconnect(javax.ws.rs.container.AsyncResponse)">onDisconnect</a></span>&#8203;(<a href="AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a>&nbsp;disconnected)</code></th>
+<td class="colLast">
+<div class="block">This callback notification method is invoked in case the container detects
+ that the remote client connection associated with the asynchronous response
+ has been disconnected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onDisconnect(javax.ws.rs.container.AsyncResponse)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onDisconnect</h4>
+<pre class="methodSignature">void&nbsp;onDisconnect&#8203;(<a href="AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a>&nbsp;disconnected)</pre>
+<div class="block">This callback notification method is invoked in case the container detects
+ that the remote client connection associated with the asynchronous response
+ has been disconnected.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>disconnected</code> - asynchronous response for which the remote client connection
+                     has been lost.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionCallback.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ContainerRequestContext.html b/apidocs/2.1.6/javax/ws/rs/container/ContainerRequestContext.html
new file mode 100644
index 0000000..b2a1d5a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ContainerRequestContext.html
@@ -0,0 +1,898 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ContainerRequestContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerRequestContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ContainerRequestContext" class="title">Interface ContainerRequestContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerRequestContext</span></pre>
+<div class="block">Container request filter context.
+
+ A mutable class that provides request-specific information for the filter,
+ such as request URI, message headers, message entity or request-scoped
+ properties. The exposed setters allow modification of the exposed request-specific
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#abortWith(javax.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableLanguages()">getAcceptableLanguages</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity input stream.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request method.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property
+ names available within the context of the current request/response exchange context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code><a href="../core/Request.html" title="interface in javax.ws.rs.core">Request</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequest()">getRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable request information.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code><a href="../core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSecurityContext()">getSecurityContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable security context information for the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="../core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUriInfo()">getUriInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get request URI information.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is a non-empty entity input stream  available in the request
+ message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeProperty(java.lang.String)">removeProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.InputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity input stream.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMethod(java.lang.String)">setMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Set the request method.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProperty(java.lang.String,java.lang.Object)">setProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRequestUri(java.net.URI)">setRequestUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</code></th>
+<td class="colLast">
+<div class="block">Set a new request URI using the current base URI of the application to
+ resolve the application-specific request URI part.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRequestUri(java.net.URI,java.net.URI)">setRequestUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;baseUri,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</code></th>
+<td class="colLast">
+<div class="block">Set a new request URI using a new base URI to resolve the application-specific
+ request URI part.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSecurityContext(javax.ws.rs.core.SecurityContext)">setSecurityContext</a></span>&#8203;(<a href="../core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Set a new injectable security context information for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.
+ <p>
+ A property allows filters and interceptors to exchange
+ additional custom information not already provided by this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>.
+ Custom property names should follow the same convention as package names.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code>
+ and expose all the attributes available in the <code>ServletRequest</code>. Any modifications
+ of the properties are also reflected in the set of properties of the associated
+ <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>Object</code> containing the value of the property, or
+         <code>null</code> if no property exists matching the given name.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPropertyNames()"><code>getPropertyNames()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property
+ names available within the context of the current request/response exchange context.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of
+ a property.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code>
+ and expose all the attributes available in the <code>ServletRequest</code>. Any modifications
+ of the properties are also reflected in the set of properties of the associated
+ <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProperty(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre class="methodSignature">void&nbsp;setProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context. If the name specified is already used for a property,
+ this method will replace the value of the property with the new value.
+ <p>
+ A property allows filters and interceptors to exchange
+ additional custom information not already provided by this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>.
+ Custom property names should follow the same convention as package names.
+ </p>
+ <p>
+ If a <code>null</code> value is passed, the effect is the same as calling the
+ <a href="#removeProperty(java.lang.String)"><code>removeProperty(String)</code></a> method.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code>
+ and expose all the attributes available in the <code>ServletRequest</code>. Any modifications
+ of the properties are also reflected in the set of properties of the associated
+ <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dd><code>object</code> - an <code>Object</code> representing the property to be bound.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeProperty</h4>
+<pre class="methodSignature">void&nbsp;removeProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context. After removal, subsequent calls to <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a>
+ to retrieve the property value will return <code>null</code>.
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code>
+ and expose all the attributes available in the <code>ServletRequest</code>. Any modifications
+ of the properties are also reflected in the set of properties of the associated
+ <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUriInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUriInfo</h4>
+<pre class="methodSignature"><a href="../core/UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a>&nbsp;getUriInfo()</pre>
+<div class="block">Get request URI information.
+
+ The returned object contains "live" view of the request URI information in
+ a sense that any changes made to the request URI using one of the
+ <code>setRequestUri(...)</code> methods will be reflected in the previously
+ returned <a href="../core/UriInfo.html" title="interface in javax.ws.rs.core"><code>UriInfo</code></a> instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>request URI information.</dd>
+</dl>
+</li>
+</ul>
+<a id="setRequestUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequestUri</h4>
+<pre class="methodSignature">void&nbsp;setRequestUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</pre>
+<div class="block">Set a new request URI using the current base URI of the application to
+ resolve the application-specific request URI part.
+ <p>
+ Note that the method is usable only in pre-matching filters, prior to the resource
+ matching occurs. Trying to invoke the method in a filter bound to a resource method
+ results in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestUri</code> - new URI of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is not invoked from a <a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>pre-matching</code></a>
+                               request filter.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setRequestUri(java.net.URI,java.net.URI)"><code>setRequestUri(java.net.URI, java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setRequestUri(java.net.URI,java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequestUri</h4>
+<pre class="methodSignature">void&nbsp;setRequestUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;baseUri,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;requestUri)</pre>
+<div class="block">Set a new request URI using a new base URI to resolve the application-specific
+ request URI part.
+ <p>
+ Note that the method is usable only in pre-matching filters, prior to the resource
+ matching occurs. Trying to invoke the method in a filter bound to a resource method
+ results in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>baseUri</code> - base URI that will be used to resolve the application-specific
+                   part of the request URI.</dd>
+<dd><code>requestUri</code> - new URI of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is not invoked from a <a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>pre-matching</code></a>
+                               request filter.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setRequestUri(java.net.URI)"><code>setRequestUri(java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getRequest()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequest</h4>
+<pre class="methodSignature"><a href="../core/Request.html" title="interface in javax.ws.rs.core">Request</a>&nbsp;getRequest()</pre>
+<div class="block">Get the injectable request information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>injectable request information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMethod()</pre>
+<div class="block">Get the request method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMethod(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMethod</h4>
+<pre class="methodSignature">void&nbsp;setMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Set the request method.
+ <p>
+ Note that the method is usable only in pre-matching filters, prior to the resource
+ matching occurs. Trying to invoke the method in a filter bound to a resource method
+ results in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - new request method.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is not invoked from a <a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>pre-matching</code></a>
+                               request filter.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable request headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of request headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then
+         <code>null</code> is returned. If the message header is present but has no
+         value then the empty string is returned. If the message header is present
+         more than once then the values of joined together and separated by a ','
+         character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other
+         cases returns <code>-1</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no
+         request entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableMediaTypes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableMediaTypes</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;&nbsp;getAcceptableMediaTypes()</pre>
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of requested response media types sorted according
+         to their q-value, with highest preference first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableLanguages()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableLanguages</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;&nbsp;getAcceptableLanguages()</pre>
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of acceptable languages sorted according
+         to their q-value, with highest preference first.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any cookies that accompanied the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to <a href="../core/Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is a non-empty entity input stream  available in the request
+ message.
+
+ The method returns <code>true</code> if the entity is present, returns
+ <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message,
+         <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity input stream. The runtime is responsible for
+ closing the input stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity input stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;input)</pre>
+<div class="block">Set a new entity input stream. The runtime is responsible for
+ closing the input stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - new entity input stream.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is invoked from a response filter.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSecurityContext()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecurityContext</h4>
+<pre class="methodSignature"><a href="../core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a>&nbsp;getSecurityContext()</pre>
+<div class="block">Get the injectable security context information for the current request.
+
+ The <a href="../core/SecurityContext.html#getUserPrincipal()"><code>SecurityContext.getUserPrincipal()</code></a> must return <code>null</code>
+ if the current request has not been authenticated.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>injectable request security context information.</dd>
+</dl>
+</li>
+</ul>
+<a id="setSecurityContext(javax.ws.rs.core.SecurityContext)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSecurityContext</h4>
+<pre class="methodSignature">void&nbsp;setSecurityContext&#8203;(<a href="../core/SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a>&nbsp;context)</pre>
+<div class="block">Set a new injectable security context information for the current request.
+
+ The <a href="../core/SecurityContext.html#getUserPrincipal()"><code>SecurityContext.getUserPrincipal()</code></a> must return <code>null</code>
+ if the current request has not been authenticated.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - new injectable request security context information.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is invoked from a response filter.</dd>
+</dl>
+</li>
+</ul>
+<a id="abortWith(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>abortWith</h4>
+<pre class="methodSignature">void&nbsp;abortWith&#8203;(<a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Abort the filter chain with a response.
+
+ This method breaks the filter chain processing and returns the provided
+ response back to the client. The provided response goes through the
+ chain of applicable response filters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - response to be sent back to the client.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the method is invoked from a response filter.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ContainerRequestFilter.html b/apidocs/2.1.6/javax/ws/rs/container/ContainerRequestFilter.html
new file mode 100644
index 0000000..89dbbbf
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ContainerRequestFilter.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ContainerRequestFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerRequestFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ContainerRequestFilter" class="title">Interface ContainerRequestFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerRequestFilter</span></pre>
+<div class="block">An extension interface implemented by container request filters.
+ <p>
+ By default, i.e. if no <a href="../NameBinding.html" title="annotation in javax.ws.rs"><code>name binding</code></a> is applied
+ to the filter implementation class, the filter instance is applied globally,
+ however only after the incoming request has been matched to a particular resource
+ by the runtime.
+ If there is a <a href="../NameBinding.html" title="annotation in javax.ws.rs"><code>&#64;NameBinding</code></a> annotation
+ applied to the filter, the filter will also be executed at the <i>post-match</i>
+ request extension point, but only in case the matched <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a> is bound to the same name-binding annotation.
+ </p>
+ <p>
+ In case the filter should be applied at the <i>pre-match</i> extension point,
+ i.e. before any request matching has been performed by the runtime, the
+ filter MUST be annotated with a <a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>&#64;PreMatching</code></a> annotation.
+ </p>
+ <p>
+ Use a pre-match request filter to update the input to the matching algorithm,
+ e.g., the HTTP method, Accept header, return cached responses etc. Otherwise,
+ the use of a request filter invoked at the <i>post-match</i> request extension point
+ (after a successful resource method matching) is recommended.
+ </p>
+ <p>
+ Filters implementing this interface must be annotated with
+ <a href="../ext/Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> to be discovered by the
+ runtime. Container request filter instances may also be discovered and
+ bound <a href="DynamicFeature.html" title="interface in javax.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>PreMatching</code></a>, 
+<a href="ContainerResponseFilter.html" title="interface in javax.ws.rs.container"><code>ContainerResponseFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(javax.ws.rs.container.ContainerRequestContext)">filter</a></span>&#8203;(<a href="ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a resource.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(javax.ws.rs.container.ContainerRequestContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called before a request has been dispatched to a resource.
+
+ <p>
+ Filters in the filter chain are ordered according to their <code>javax.annotation.Priority</code>
+ class-level annotation value.
+ If a request filter produces a response by calling <a href="ContainerRequestContext.html#abortWith(javax.ws.rs.core.Response)"><code>ContainerRequestContext.abortWith(javax.ws.rs.core.Response)</code></a>
+ method, the execution of the (either pre-match or post-match) request filter
+ chain is stopped and the response is passed to the corresponding response
+ filter chain (either pre-match or post-match). For example, a pre-match
+ caching filter may produce a response in this way, which would effectively
+ skip any post-match request filters as well as post-match response filters.
+ Note however that a responses produced in this manner would still be processed
+ by the pre-match response filter chain.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>PreMatching</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerRequestFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ContainerResponseContext.html b/apidocs/2.1.6/javax/ws/rs/container/ContainerResponseContext.html
new file mode 100644
index 0000000..c64df93
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ContainerResponseContext.html
@@ -0,0 +1,970 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ContainerResponseContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerResponseContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ContainerResponseContext" class="title">Interface ContainerResponseContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerResponseContext</span></pre>
+<div class="block">Container response filter context.
+
+ A mutable class that provides response-specific information for the filter,
+ such as message headers, message entity or request-scoped properties.
+ The exposed setters allow modification of the exposed response-specific
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedMethods()">getAllowedMethods</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the message entity Java instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityAnnotations()">getEntityAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the annotations attached to the entity instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityClass()">getEntityClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the raw entity type information.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityStream()">getEntityStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity output stream.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="../core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityType()">getEntityType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the generic entity type information.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the last modified date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code><a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code><a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the location.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the status code associated with the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code><a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is an entity available in the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasLink(java.lang.String)">hasLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Check if link for relation exists.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntityStream(java.io.OutputStream)">setEntityStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</code></th>
+<td class="colLast">
+<div class="block">Set a new entity output stream.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatus(int)">setStatus</a></span>&#8203;(int&nbsp;code)</code></th>
+<td class="colLast">
+<div class="block">Set a new response status code.</div>
+</td>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setStatusInfo(javax.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">int&nbsp;getStatus()</pre>
+<div class="block">Get the status code associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status code or -1 if the status was not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatus(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatus</h4>
+<pre class="methodSignature">void&nbsp;setStatus&#8203;(int&nbsp;code)</pre>
+<div class="block">Set a new response status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - new status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusInfo</h4>
+<pre class="methodSignature"><a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;getStatusInfo()</pre>
+<div class="block">Get the complete status information associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status information or <code>null</code> if the status was
+         not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="setStatusInfo(javax.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStatusInfo</h4>
+<pre class="methodSignature">void&nbsp;setStatusInfo&#8203;(<a href="../core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</pre>
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusInfo</code> - the response status information.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get the mutable response headers multivalued map.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mutable multivalued map of response headers.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getStringHeaders()"><code>getStringHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getStringHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getStringHeaders()</pre>
+<div class="block">Get a string view of header values associated with the message.
+
+ Changes in the underlying <a href="#getHeaders()"><code>headers map</code></a> are reflected
+ in this view.
+ <p>
+ The method converts the non-string header values to strings using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the
+ class of the value or using the values <code>toString</code> method if a header delegate is
+ not available.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a string view of header values.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.
+
+ Each single header value is converted to String using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available
+ via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a>
+ for the header value class or using its <code>toString</code> method  if a header
+ delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then
+         <code>null</code> is returned. If the message header is present but has no
+         value then the empty string is returned. If the message header is present
+         more than once then the values of joined together and separated by a ','
+         character.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getStringHeaders()"><code>getStringHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getAllowedMethods()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllowedMethods</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;&nbsp;getAllowedMethods()</pre>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the allowed HTTP methods, all methods will returned as upper case
+         strings.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other
+         cases returns -1.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if not specified (e.g. there's no
+         response entity).</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../core/NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any new cookies set on the response message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to a <a href="../core/NewCookie.html" title="class in javax.ws.rs.core"><code>new cookie</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityTag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityTag</h4>
+<pre class="methodSignature"><a href="../core/EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;getEntityTag()</pre>
+<div class="block">Get the entity tag.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getLastModified()</pre>
+<div class="block">Get the last modified date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last modified date, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the location URI, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinks()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinks</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&gt;&nbsp;getLinks()</pre>
+<div class="block">Get the links attached to the message as header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>links, may return empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> if no links are present. Never
+         returns <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasLink</h4>
+<pre class="methodSignature">boolean&nbsp;hasLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Check if link for relation exists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the for the relation link exists, <code>false</code>
+         otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLink</h4>
+<pre class="methodSignature"><a href="../core/Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;getLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Get the link for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link for the relation, otherwise <code>null</code> if not present.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinkBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinkBuilder</h4>
+<pre class="methodSignature"><a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;getLinkBuilder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Convenience method that returns a <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link builder for the relation, otherwise <code>null</code> if not
+         present.</dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is an entity available in the response.
+
+ The method returns <code>true</code> if the entity is present, returns
+ <code>false</code> otherwise.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message,
+         <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get the message entity Java instance.
+
+ Returns <code>null</code> if the message does not contain an entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity or <code>null</code> if message does not contain an
+         entity body.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityClass()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityClass</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getEntityClass()</pre>
+<div class="block">Get the raw entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>raw entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getEntityType()</pre>
+<div class="block">Get the generic entity type information.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>declared generic entity type.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Set a new message entity. The existing entity <a href="#getEntityAnnotations()"><code>annotations</code></a>
+ and <a href="#getMediaType()"><code>media type</code></a> are preserved.
+ <p>
+ It is the callers responsibility to wrap the actual entity with
+ <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic
+ type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)"><code>setEntity(Object, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+               <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Set a new message entity, including the attached annotations and the media type.
+ <p>
+ It is the callers responsibility to wrap the actual entity with
+ <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic
+ type is required.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - entity object.</dd>
+<dd><code>annotations</code> - annotations attached to the entity instance.</dd>
+<dd><code>mediaType</code> - entity media type.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#setEntity(java.lang.Object)"><code>setEntity(Object)</code></a>, 
+<a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityAnnotations</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getEntityAnnotations()</pre>
+<div class="block">Get the annotations attached to the entity instance.
+ <p>
+ Note that the returned annotations array contains only those annotations
+ explicitly attached to entity instance (such as the ones attached using
+ <a href="../core/Response.ResponseBuilder.html#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)"><code>Response.ResponseBuilder.entity(Object, java.lang.annotation.Annotation[])</code></a> method
+ as well as the ones attached to the resource method that has returned the response).
+ The entity instance annotations array does not include annotations declared on the entity
+ implementation class or its ancestors.
+ </p>
+ <p>
+ Note that container response filters invoked earlier in the filter chain may modify the entity annotations value,
+ in which case this getter method would return the last annotations value set by a container response filter invoked
+ earlier in the filter chain.
+ </p>
+ <p>
+ For example:
+ </p>
+ <pre>
+ &#64;Path("my-resource")
+ public class MyResource {
+   private final Annotations[] extras = ... ;
+
+   &#64;GET
+   &#64;Custom
+   public String getAnnotatedMe() {
+     return Response.ok().entity("Annotated me", extras).build();
+   }
+   ...
+ }
+ </pre>
+ <p>
+ The container response context for a response returned from the <code>getMe()</code> method above would contain all
+ the annotations declared on the <code>getAnnotatedMe()</code> method (<code>@GET</code>, <code>@Custom</code>) as well as all
+ the annotations from the <code>extras</code> field, provided this value has not been replaced by any container response filter
+ invoked earlier.
+ </p>
+ <p>
+ Similarly:
+ </p>
+ <pre>
+ &#64;Custom
+ public class AnnotatedMe { ... }
+
+ &#64;Path("my-resource")
+ public class MyResource {
+   private final Annotations[] extras = ... ;
+
+   &#64;GET
+   public AnnotatedMe getMe() {
+     return Response.ok().entity(new AnnotatedMe(), extras).build();
+   }
+   ...
+ }
+ </pre>
+ <p>
+ Provided that the value has not been replaced by any container response filter invoked earlier,
+ the container response context for a response returned from the <code>getMe()</code> method above would contain all
+ the annotations on the <code>getMe()</code> method (<code>@GET</code>) as well as all the annotations from the
+ <code>extras</code> field. It would however not contain any annotations declared on the <code>AnnotatedMe</code> class.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>annotations attached to the entity instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;getEntityStream()</pre>
+<div class="block">Get the entity output stream. The runtime is responsible for
+ closing the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>entity output stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntityStream(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setEntityStream</h4>
+<pre class="methodSignature">void&nbsp;setEntityStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;outputStream)</pre>
+<div class="block">Set a new entity output stream. The runtime is responsible for
+ closing the output stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>outputStream</code> - new entity output stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ContainerResponseFilter.html b/apidocs/2.1.6/javax/ws/rs/container/ContainerResponseFilter.html
new file mode 100644
index 0000000..48596d3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ContainerResponseFilter.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ContainerResponseFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContainerResponseFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ContainerResponseFilter" class="title">Interface ContainerResponseFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ContainerResponseFilter</span></pre>
+<div class="block">An extension interface implemented by container response filters.
+ <p>
+ By default, i.e. if no <a href="../NameBinding.html" title="annotation in javax.ws.rs"><code>name binding</code></a> is applied
+ to the filter implementation class, the filter instance is applied globally to
+ any outgoing response.
+ If there is a <code>@NameBinding</code> annotation applied to the filter, the filter
+ will only be executed for a response for which the request has been matched to
+ a <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a> AND the method
+ or the whole custom <a href="../core/Application.html" title="class in javax.ws.rs.core"><code>Application</code></a> class
+ is bound to the same name-binding annotation.
+ </p>
+ <p>
+ Implement a name-bound response filter in cases when you want limit the filter
+ functionality to a matched resource or resource method. In other cases,
+ when the filter should be applied globally to any outgoing response, implement an
+ unbound, global response filter.
+ </p>
+ <p>
+ Filters implementing this interface must be annotated with
+ <a href="../ext/Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> to be discovered by the
+ runtime. Container response filter instances may also be discovered and
+ bound <a href="DynamicFeature.html" title="interface in javax.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>ContainerRequestFilter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter(javax.ws.rs.container.ContainerRequestContext,javax.ws.rs.container.ContainerResponseContext)">filter</a></span>&#8203;(<a href="ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+      <a href="ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>request filter</code></a> or by a
+ matched resource method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="filter(javax.ws.rs.container.ContainerRequestContext,javax.ws.rs.container.ContainerResponseContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre class="methodSignature">void&nbsp;filter&#8203;(<a href="ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+            <a href="ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)
+     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>request filter</code></a> or by a
+ matched resource method.
+ <p>
+ Filters in the filter chain are ordered according to their <code>javax.annotation.Priority</code>
+ class-level annotation value.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>requestContext</code> - request context.</dd>
+<dd><code>responseContext</code> - response context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an I/O exception occurs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContainerResponseFilter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/DynamicFeature.html b/apidocs/2.1.6/javax/ws/rs/container/DynamicFeature.html
new file mode 100644
index 0000000..7676386
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/DynamicFeature.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>DynamicFeature (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DynamicFeature (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicFeature.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface DynamicFeature" class="title">Interface DynamicFeature</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">DynamicFeature</span></pre>
+<div class="block">A meta-provider for dynamic registration of <i>post-matching</i> providers
+ during an application setup at deployment time.
+
+ Dynamic feature is used by the runtime to register providers that shall be applied
+ to a particular resource class and method and overrides any annotation-based binding
+ definitions defined on any registered resource filter or interceptor instance.
+ <p>
+ Providers implementing this interface MAY be annotated with
+ <a href="../ext/Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation in order to be
+ discovered by the runtime when scanning for resources and providers.
+ This provider types is supported only as part of the Server API.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../NameBinding.html" title="annotation in javax.ws.rs"><code>NameBinding</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(javax.ws.rs.container.ResourceInfo,javax.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+         <a href="../core/FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A callback method called by the runtime during the application
+ deployment to register provider instances or classes in a
+ <a href="../core/Configuration.html" title="interface in javax.ws.rs.core"><code>runtime configuration</code></a> scope of a particular <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="configure(javax.ws.rs.container.ResourceInfo,javax.ws.rs.core.FeatureContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configure</h4>
+<pre class="methodSignature">void&nbsp;configure&#8203;(<a href="ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+               <a href="../core/FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</pre>
+<div class="block">A callback method called by the runtime during the application
+ deployment to register provider instances or classes in a
+ <a href="../core/Configuration.html" title="interface in javax.ws.rs.core"><code>runtime configuration</code></a> scope of a particular <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>; i.e. the providers that should be dynamically bound
+ to the method.
+ <p>
+ The registered provider instances or classes are expected to be implementing one
+ or more of the following interfaces:
+ </p>
+ <ul>
+ <li><a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>ContainerRequestFilter</code></a></li>
+ <li><a href="ContainerResponseFilter.html" title="interface in javax.ws.rs.container"><code>ContainerResponseFilter</code></a></li>
+ <li><a href="../ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a></li>
+ <li><a href="../ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a></li>
+ <li><a href="../core/Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a></li>
+ </ul>
+ <p>
+ A provider instance or class that does not implement any of the interfaces
+ above may be ignored by the API implementation. In such case a
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/logging/Level.html?is-external=true#WARNING" title="class or interface in java.util.logging" class="externalLink"><code>warning</code></a> message must be logged.
+ API implementations may support additional provider contracts that
+ can be registered using a dynamic feature concept.
+ </p>
+ <p>
+ Conceptually, this callback method is called during a <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a> discovery phase (typically once per each discovered
+ resource or sub-resource method) to register provider instances or classes in a
+ <code>configuration</code> scope of each particular method identified by the supplied
+ <a href="ResourceInfo.html" title="interface in javax.ws.rs.container"><code>resource information</code></a>.
+ The responsibility of the feature is to properly update the supplied <code>configuration</code>
+ context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resourceInfo</code> - resource class and method information.</dd>
+<dd><code>context</code> - configurable resource or sub-resource method-level runtime context
+                     associated with the <code>resourceInfo</code> in which the feature</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DynamicFeature.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/PreMatching.html b/apidocs/2.1.6/javax/ws/rs/container/PreMatching.html
new file mode 100644
index 0000000..0053582
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/PreMatching.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>PreMatching (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PreMatching (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PreMatching.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Annotation Type PreMatching" class="title">Annotation Type PreMatching</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">PreMatching</span></pre>
+<div class="block">Global binding annotation that can be applied to a <a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>container request filter</code></a> to indicate that such filter should be applied globally
+ on all resources in the application before the actual resource matching occurs.
+ <p>
+ The runtime will apply the filters marked with the <code>@PreMatching</code>
+ annotation globally to all resources, before the incoming request has been matched
+ to a particular resource method.
+ Any <a href="../NameBinding.html" title="annotation in javax.ws.rs"><code>named binding annotations</code></a> will be ignored on
+ a component annotated with the <code>@PreMatching</code> annotation.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PreMatching.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ResourceContext.html b/apidocs/2.1.6/javax/ws/rs/container/ResourceContext.html
new file mode 100644
index 0000000..a0525b9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ResourceContext.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ResourceContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ResourceContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ResourceContext" class="title">Interface ResourceContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ResourceContext</span></pre>
+<div class="block">The resource context provides access to instances of resource classes.
+ <p>
+ This interface can be injected using the <a href="../core/Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a> annotation.
+ </p>
+ <p>
+ The resource context can be utilized when instances of managed resource
+ classes are to be returned by sub-resource locator methods. Such instances
+ will be injected and managed within the declared scope just like instances
+ of root resource classes.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResource(java.lang.Class)">getResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;resourceClass)</code></th>
+<td class="colLast">
+<div class="block">Get a resolved instance of a resource or sub-resource class.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initResource(T)">initResource</a></span>&#8203;(T&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Initialize the resource or sub-resource instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResource(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;getResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;resourceClass)</pre>
+<div class="block">Get a resolved instance of a resource or sub-resource class.
+ <p>
+ The resolved resource instance is properly initialized in the context of the
+ current request processing scope. The scope of the resolved resource instance
+ depends on the managing container. For resources managed by the runtime container
+ the default scope is per-request.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type of the resource class.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resourceClass</code> - the resource class.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance if it could be resolved, otherwise <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="initResource(java.lang.Object)">
+<!--   -->
+</a><a id="initResource(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>initResource</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;initResource&#8203;(T&nbsp;resource)</pre>
+<div class="block">Initialize the resource or sub-resource instance.
+
+ All injectable fields in the resource instance will be properly initialized in
+ the context of the current request processing scope.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - resource instance type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - resource instance.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>initialized (same) resource instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/ResourceInfo.html b/apidocs/2.1.6/javax/ws/rs/container/ResourceInfo.html
new file mode 100644
index 0000000..2d1a99e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/ResourceInfo.html
@@ -0,0 +1,271 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ResourceInfo (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ResourceInfo (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceInfo.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface ResourceInfo" class="title">Interface ResourceInfo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ResourceInfo</span></pre>
+<div class="block">An injectable class to access the resource class and resource method
+ matched by the current request. Methods in this class MAY return
+ <code>null</code> if a resource class and method have not been matched,
+ e.g. in a standalone, pre-matching <a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>ContainerRequestFilter</code></a> that was
+ not provided by a post-matching <a href="PreMatching.html" title="annotation in javax.ws.rs.container"><code>PreMatching</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceClass()">getResourceClass</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the resource class that is the target of a request,
+ or <code>null</code> if this information is not available.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResourceMethod()">getResourceMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the resource method that is the target of a request,
+ or <code>null</code> if this information is not available.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getResourceMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResourceMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;getResourceMethod()</pre>
+<div class="block">Get the resource method that is the target of a request,
+ or <code>null</code> if this information is not available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resource method instance or null</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getResourceClass()"><code>getResourceClass()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getResourceClass()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getResourceClass</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getResourceClass()</pre>
+<div class="block">Get the resource class that is the target of a request,
+ or <code>null</code> if this information is not available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>resource class instance or null</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getResourceMethod()"><code>getResourceMethod()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ResourceInfo.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/Suspended.html b/apidocs/2.1.6/javax/ws/rs/container/Suspended.html
new file mode 100644
index 0000000..971a8d1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/Suspended.html
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Suspended (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Suspended (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Suspended.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Annotation Type Suspended" class="title">Annotation Type Suspended</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Suspended</span></pre>
+<div class="block">Inject a suspended <a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked
+ <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>.
+
+ The injected <code>AsyncResponse</code> instance is bound to the processing
+ of the active request and can be used to resume the request processing when
+ a response is available.
+ <p>
+ By default there is <a href="AsyncResponse.html#NO_TIMEOUT"><code>no suspend timeout set</code></a> and
+ the asynchronous response is suspended indefinitely. The suspend timeout as well
+ as a custom <a href="TimeoutHandler.html" title="interface in javax.ws.rs.container"><code>timeout handler</code></a> can be specified programmatically
+ using the <a href="AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)"><code>AsyncResponse.setTimeout(long, TimeUnit)</code></a> and
+ <a href="AsyncResponse.html#setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)"><code>AsyncResponse.setTimeoutHandler(TimeoutHandler)</code></a> methods. For example:
+ <p/>
+ <pre>
+  &#64;Stateless
+  &#64;Path("/")
+  public class MyEjbResource {
+    &hellip;
+    &#64;GET
+    &#64;Asynchronous
+    public void longRunningOperation(&#64;Suspended AsyncResponse ar) {
+      ar.setTimeoutHandler(customHandler);
+      ar.setTimeout(10, TimeUnit.SECONDS);
+      final String result = executeLongRunningOperation();
+      ar.resume(result);
+    }
+
+    private String executeLongRunningOperation() { &hellip; }
+  }
+ </pre>
+ <p>
+ A resource or sub-resource method that injects a suspended instance of an
+ <code>AsyncResponse</code> using the <code>@Suspended</code> annotation is expected
+ be declared to return <code>void</code> type. Methods that inject asynchronous
+ response instance using the <code>@Suspended</code> annotation and declare a
+ return type other than <code>void</code> MUST be detected by the the runtime and
+ a warning message MUST be logged. Any response value returned from such resource
+ or sub-resource method MUST be ignored by the framework:
+ </p>
+ <pre>
+ &#64;Path("/messages/next")
+ public class MessagingResource {
+     &hellip;
+     &#64;GET
+     public String readMessage(&#64;Suspended AsyncResponse ar) {
+         suspended.put(ar);
+         return "This response will be ignored.";
+     }
+     &hellip;
+ }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Suspended.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/TimeoutHandler.html b/apidocs/2.1.6/javax/ws/rs/container/TimeoutHandler.html
new file mode 100644
index 0000000..f705b08
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/TimeoutHandler.html
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>TimeoutHandler (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeoutHandler (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeoutHandler.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.container</a></div>
+<h2 title="Interface TimeoutHandler" class="title">Interface TimeoutHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">TimeoutHandler</span></pre>
+<div class="block">Asynchronous response suspend time-out handler.
+
+ Users may utilize this callback interface to provide
+ custom resolution of time-out events.
+ <p>
+ By default, the runtime generates a <a href="../WebApplicationException.html" title="class in javax.ws.rs"><code>WebApplicationException</code></a>
+ with a <a href="../core/Response.Status.html#SERVICE_UNAVAILABLE"><code>HTTP 503
+ (Service unavailable)</code></a> error response status code. A custom time-out handler
+ may be <a href="AsyncResponse.html#setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)"><code>set</code></a> on an
+ asynchronous response instance to provide custom time-out event resolution.
+ </p>
+ <p>
+ In case of a suspend time-out event, a custom time-out handler takes typically one
+ of the following actions:
+ <ul>
+ <li>Resumes the suspended asynchronous response using a <a href="AsyncResponse.html#resume(java.lang.Object)"><code>custom response</code></a> or a <a href="AsyncResponse.html#resume(java.lang.Throwable)"><code>custom exception</code></a></li>
+ <li>Cancels the response by calling one of the <a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><code>AsyncResponse</code></a> <code>cancel(...)</code>
+ methods.</li>
+ <li>Extends the suspend period of the response by
+ <a href="AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)"><code>setting a new suspend time-out</code></a></li>
+ </ul>
+ If the registered time-out handler does not take any of the actions above, the
+ default time-out event processing continues and the response is resumed with
+ a generated <code>WebApplicationException</code> containing the HTTP 503 status code.
+ </p>
+ <p>
+ Following example illustrates the use of a custom <code>TimeoutHandler</code>:
+ </p>
+ <pre>
+ public class MyTimeoutHandler implements TimeoutHandler {
+     &hellip;
+     public void handleTimeout(AsyncResponse ar) {
+         if (keepSuspended) {
+             ar.setTimeout(10, SECONDS);
+         } else if (cancel) {
+             ar.cancel(retryPeriod);
+         } else {
+             ar.resume(defaultResponse);
+         }
+     }
+     &hellip;
+ }
+
+ &#64;Path("/messages/next")
+ public class MessagingResource {
+     &hellip;
+     &#64;GET
+     public void readMessage(&#64;Suspended AsyncResponse ar) {
+         ar.setTimeoutHandler(new MyTimeoutHandler());
+         suspended.put(ar);
+     }
+     &hellip;
+ }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleTimeout(javax.ws.rs.container.AsyncResponse)">handleTimeout</a></span>&#8203;(<a href="AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a>&nbsp;asyncResponse)</code></th>
+<td class="colLast">
+<div class="block">Invoked when the suspended asynchronous response is about to time out.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="handleTimeout(javax.ws.rs.container.AsyncResponse)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handleTimeout</h4>
+<pre class="methodSignature">void&nbsp;handleTimeout&#8203;(<a href="AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a>&nbsp;asyncResponse)</pre>
+<div class="block">Invoked when the suspended asynchronous response is about to time out.
+
+ Implementing time-out handlers may use the callback method to change the
+ default time-out strategy defined by this specification (see
+ <a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><code>AsyncResponse</code></a> API documentation).
+ <p>
+ A custom time-out handler may decide to either
+ <ul>
+ <li>resume the suspended response using one of it's <code>resume(...)</code> methods,</li>
+ <li>cancel the suspended response using one of it's <code>cancel(...)</code> methods, or</li>
+ <li>extend the suspend period by <a href="AsyncResponse.html#setTimeout(long,java.util.concurrent.TimeUnit)"><code>setting a new suspend time-out</code></a></li>
+ </ul>
+ </p>
+ In case the time-out handler does not take any of the actions mentioned above,
+ a default time-out strategy is executed by the runtime.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>asyncResponse</code> - suspended asynchronous response that is timing out.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeoutHandler.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/AsyncResponse.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/AsyncResponse.html
new file mode 100644
index 0000000..94426ad
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/AsyncResponse.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.AsyncResponse (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.AsyncResponse (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.AsyncResponse" class="title">Uses of Interface<br>javax.ws.rs.container.AsyncResponse</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a> in <a href="../package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">TimeoutHandler.</span><code><span class="memberNameLink"><a href="../TimeoutHandler.html#handleTimeout(javax.ws.rs.container.AsyncResponse)">handleTimeout</a></span>&#8203;(<a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a>&nbsp;asyncResponse)</code></th>
+<td class="colLast">
+<div class="block">Invoked when the suspended asynchronous response is about to time out.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ConnectionCallback.</span><code><span class="memberNameLink"><a href="../ConnectionCallback.html#onDisconnect(javax.ws.rs.container.AsyncResponse)">onDisconnect</a></span>&#8203;(<a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a>&nbsp;disconnected)</code></th>
+<td class="colLast">
+<div class="block">This callback notification method is invoked in case the container detects
+ that the remote client connection associated with the asynchronous response
+ has been disconnected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AsyncResponse.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/CompletionCallback.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/CompletionCallback.html
new file mode 100644
index 0000000..9b92ea3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/CompletionCallback.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.CompletionCallback (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.CompletionCallback (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionCallback.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.CompletionCallback" class="title">Uses of Interface<br>javax.ws.rs.container.CompletionCallback</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.CompletionCallback</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CompletionCallback.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ConnectionCallback.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ConnectionCallback.html
new file mode 100644
index 0000000..cb9ca37
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ConnectionCallback.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ConnectionCallback (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ConnectionCallback (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConnectionCallback.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ConnectionCallback" class="title">Uses of Interface<br>javax.ws.rs.container.ConnectionCallback</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.ConnectionCallback</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ConnectionCallback.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerRequestContext.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerRequestContext.html
new file mode 100644
index 0000000..5adee17
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerRequestContext.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ContainerRequestContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ContainerRequestContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ContainerRequestContext" class="title">Uses of Interface<br>javax.ws.rs.container.ContainerRequestContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a> in <a href="../package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestFilter.</span><code><span class="memberNameLink"><a href="../ContainerRequestFilter.html#filter(javax.ws.rs.container.ContainerRequestContext)">filter</a></span>&#8203;(<a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called before a request has been dispatched to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseFilter.</span><code><span class="memberNameLink"><a href="../ContainerResponseFilter.html#filter(javax.ws.rs.container.ContainerRequestContext,javax.ws.rs.container.ContainerResponseContext)">filter</a></span>&#8203;(<a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+      <a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="../ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>request filter</code></a> or by a
+ matched resource method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerRequestFilter.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerRequestFilter.html
new file mode 100644
index 0000000..2a6f797
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerRequestFilter.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ContainerRequestFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ContainerRequestFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestFilter.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ContainerRequestFilter" class="title">Uses of Interface<br>javax.ws.rs.container.ContainerRequestFilter</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.ContainerRequestFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerRequestFilter.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerResponseContext.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerResponseContext.html
new file mode 100644
index 0000000..5b2ac9a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerResponseContext.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ContainerResponseContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ContainerResponseContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ContainerResponseContext" class="title">Uses of Interface<br>javax.ws.rs.container.ContainerResponseContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a> in <a href="../package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseFilter.</span><code><span class="memberNameLink"><a href="../ContainerResponseFilter.html#filter(javax.ws.rs.container.ContainerRequestContext,javax.ws.rs.container.ContainerResponseContext)">filter</a></span>&#8203;(<a href="../ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a>&nbsp;requestContext,
+      <a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a>&nbsp;responseContext)</code></th>
+<td class="colLast">
+<div class="block">Filter method called after a response has been provided for a request
+ (either by a <a href="../ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>request filter</code></a> or by a
+ matched resource method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseContext.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerResponseFilter.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerResponseFilter.html
new file mode 100644
index 0000000..d053259
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ContainerResponseFilter.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ContainerResponseFilter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ContainerResponseFilter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseFilter.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ContainerResponseFilter" class="title">Uses of Interface<br>javax.ws.rs.container.ContainerResponseFilter</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.ContainerResponseFilter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContainerResponseFilter.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/DynamicFeature.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/DynamicFeature.html
new file mode 100644
index 0000000..c96bf92
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/DynamicFeature.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.DynamicFeature (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.DynamicFeature (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DynamicFeature.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.DynamicFeature" class="title">Uses of Interface<br>javax.ws.rs.container.DynamicFeature</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.DynamicFeature</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../DynamicFeature.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/PreMatching.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/PreMatching.html
new file mode 100644
index 0000000..9342333
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/PreMatching.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.container.PreMatching (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.container.PreMatching (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PreMatching.html" title="annotation in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.container.PreMatching" class="title">Uses of Class<br>javax.ws.rs.container.PreMatching</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.PreMatching</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PreMatching.html" title="annotation in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ResourceContext.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ResourceContext.html
new file mode 100644
index 0000000..ab9884b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ResourceContext.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ResourceContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ResourceContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceContext.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ResourceContext" class="title">Uses of Interface<br>javax.ws.rs.container.ResourceContext</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.ResourceContext</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceContext.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/ResourceInfo.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/ResourceInfo.html
new file mode 100644
index 0000000..ef4471a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/ResourceInfo.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.ResourceInfo (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.ResourceInfo (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceInfo.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.ResourceInfo" class="title">Uses of Interface<br>javax.ws.rs.container.ResourceInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a> in <a href="../package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DynamicFeature.</span><code><span class="memberNameLink"><a href="../DynamicFeature.html#configure(javax.ws.rs.container.ResourceInfo,javax.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="../ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+         <a href="../../core/FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A callback method called by the runtime during the application
+ deployment to register provider instances or classes in a
+ <a href="../../core/Configuration.html" title="interface in javax.ws.rs.core"><code>runtime configuration</code></a> scope of a particular <a href="../../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ResourceInfo.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/Suspended.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/Suspended.html
new file mode 100644
index 0000000..bbd2b3e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/Suspended.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.container.Suspended (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.container.Suspended (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Suspended.html" title="annotation in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.container.Suspended" class="title">Uses of Class<br>javax.ws.rs.container.Suspended</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.container.Suspended</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Suspended.html" title="annotation in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/class-use/TimeoutHandler.html b/apidocs/2.1.6/javax/ws/rs/container/class-use/TimeoutHandler.html
new file mode 100644
index 0000000..dac4989
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/class-use/TimeoutHandler.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.container.TimeoutHandler (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.container.TimeoutHandler (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TimeoutHandler.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.container.TimeoutHandler" class="title">Uses of Interface<br>javax.ws.rs.container.TimeoutHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a> in <a href="../package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncResponse.</span><code><span class="memberNameLink"><a href="../AsyncResponse.html#setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)">setTimeoutHandler</a></span>&#8203;(<a href="../TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a>&nbsp;handler)</code></th>
+<td class="colLast">
+<div class="block">Set/replace a time-out handler for the suspended asynchronous response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../TimeoutHandler.html" title="interface in javax.ws.rs.container">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/package-summary.html b/apidocs/2.1.6/javax/ws/rs/container/package-summary.html
new file mode 100644
index 0000000..2eb6654
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/package-summary.html
@@ -0,0 +1,232 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.container (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.container (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.ws.rs.container</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Container-specific API.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AsyncResponse.html" title="interface in javax.ws.rs.container">AsyncResponse</a></th>
+<td class="colLast">
+<div class="block">An injectable and asynchronous response that provides means for asynchronous server side
+ response processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="CompletionCallback.html" title="interface in javax.ws.rs.container">CompletionCallback</a></th>
+<td class="colLast">
+<div class="block">A request processing callback that receives request processing completion events.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ConnectionCallback.html" title="interface in javax.ws.rs.container">ConnectionCallback</a></th>
+<td class="colLast">
+<div class="block">Asynchronous request processing lifecycle callback that receives connection
+ related <a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><code>asynchronous response</code></a> lifecycle events.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ContainerRequestContext.html" title="interface in javax.ws.rs.container">ContainerRequestContext</a></th>
+<td class="colLast">
+<div class="block">Container request filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container">ContainerRequestFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by container request filters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ContainerResponseContext.html" title="interface in javax.ws.rs.container">ContainerResponseContext</a></th>
+<td class="colLast">
+<div class="block">Container response filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ContainerResponseFilter.html" title="interface in javax.ws.rs.container">ContainerResponseFilter</a></th>
+<td class="colLast">
+<div class="block">An extension interface implemented by container response filters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DynamicFeature.html" title="interface in javax.ws.rs.container">DynamicFeature</a></th>
+<td class="colLast">
+<div class="block">A meta-provider for dynamic registration of <i>post-matching</i> providers
+ during an application setup at deployment time.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ResourceContext.html" title="interface in javax.ws.rs.container">ResourceContext</a></th>
+<td class="colLast">
+<div class="block">The resource context provides access to instances of resource classes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable class to access the resource class and resource method
+ matched by the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="TimeoutHandler.html" title="interface in javax.ws.rs.container">TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PreMatching.html" title="annotation in javax.ws.rs.container">PreMatching</a></th>
+<td class="colLast">
+<div class="block">Global binding annotation that can be applied to a <a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><code>container request filter</code></a> to indicate that such filter should be applied globally
+ on all resources in the application before the actual resource matching occurs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Suspended.html" title="annotation in javax.ws.rs.container">Suspended</a></th>
+<td class="colLast">
+<div class="block">Inject a suspended <a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><code>AsyncResponse</code></a> into a parameter of an invoked
+ <a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/package-tree.html b/apidocs/2.1.6/javax/ws/rs/container/package-tree.html
new file mode 100644
index 0000000..640a104
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/package-tree.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.container Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.container Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.ws.rs.container</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.container.<a href="AsyncResponse.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">AsyncResponse</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="CompletionCallback.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">CompletionCallback</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ConnectionCallback.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ConnectionCallback</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ContainerRequestContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerRequestContext</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerRequestFilter</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ContainerResponseContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerResponseContext</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ContainerResponseFilter.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerResponseFilter</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="DynamicFeature.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">DynamicFeature</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ResourceContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ResourceContext</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="ResourceInfo.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ResourceInfo</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="TimeoutHandler.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">TimeoutHandler</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.container.<a href="PreMatching.html" title="annotation in javax.ws.rs.container"><span class="typeNameLink">PreMatching</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.container.<a href="Suspended.html" title="annotation in javax.ws.rs.container"><span class="typeNameLink">Suspended</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/container/package-use.html b/apidocs/2.1.6/javax/ws/rs/container/package-use.html
new file mode 100644
index 0000000..64b6090
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/container/package-use.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Package javax.ws.rs.container (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.ws.rs.container (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.ws.rs.container" class="title">Uses of Package<br>javax.ws.rs.container</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="package-summary.html">javax.ws.rs.container</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.container</a> used by <a href="package-summary.html">javax.ws.rs.container</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AsyncResponse.html#javax.ws.rs.container">AsyncResponse</a></th>
+<td class="colLast">
+<div class="block">An injectable and asynchronous response that provides means for asynchronous server side
+ response processing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ContainerRequestContext.html#javax.ws.rs.container">ContainerRequestContext</a></th>
+<td class="colLast">
+<div class="block">Container request filter context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ContainerResponseContext.html#javax.ws.rs.container">ContainerResponseContext</a></th>
+<td class="colLast">
+<div class="block">Container response filter context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ResourceInfo.html#javax.ws.rs.container">ResourceInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable class to access the resource class and resource method
+ matched by the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/TimeoutHandler.html#javax.ws.rs.container">TimeoutHandler</a></th>
+<td class="colLast">
+<div class="block">Asynchronous response suspend time-out handler.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/AbstractMultivaluedMap.html b/apidocs/2.1.6/javax/ws/rs/core/AbstractMultivaluedMap.html
new file mode 100644
index 0000000..9337f85
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/AbstractMultivaluedMap.html
@@ -0,0 +1,990 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>AbstractMultivaluedMap (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractMultivaluedMap (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractMultivaluedMap.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class AbstractMultivaluedMap" class="title">Class AbstractMultivaluedMap&lt;K,&#8203;V&gt;</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.AbstractMultivaluedMap&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map.</dd>
+<dd><code>V</code> - the type of mapped values.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</code>, <code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</code></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">AbstractMultivaluedMap&lt;K,&#8203;V&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</pre>
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">K</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">V</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#store">store</a></span></code></th>
+<td class="colLast">
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map)">AbstractMultivaluedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Initialize the backing store in the abstract parent multivalued map
+ implementation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(K,V)">add</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+   <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,java.util.List)">addAll</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;valueList)</code></th>
+<td class="colLast">
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,V...)">addAll</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+      <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>...&nbsp;newValues)</code></th>
+<td class="colLast">
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(K,V)">addFirst</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+        <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirstNull(java.util.List)">addFirstNull</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>protected void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addNull(java.util.List)">addNull</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsKey(java.lang.Object)">containsKey</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsValue(java.lang.Object)">containsValue</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entrySet()">entrySet</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.Object)">get</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(K)">getFirst</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValues(K)">getValues</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">Return a non-null list of values for a given key.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#keySet()">keySet</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(K,java.util.List)">put</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;value)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putAll(java.util.Map)">putAll</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;m)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putSingle(K,V)">putSingle</a></span>&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+         <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the value for the key to be a one item list consisting of the supplied
+ value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(java.lang.Object)">remove</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#compute(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util" class="externalLink">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfPresent(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#forEach(java.util.function.BiConsumer)" title="class or interface in java.util" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#getOrDefault(java.lang.Object,V)" title="class or interface in java.util" class="externalLink">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#merge(K,V,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent(K,V)" title="class or interface in java.util" class="externalLink">putIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replaceAll(java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">replaceAll</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="store">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>store</h4>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt; store</pre>
+<div class="block">Backing store for the [key, multi-value] pairs.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractMultivaluedMap</h4>
+<pre>public&nbsp;AbstractMultivaluedMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;store)</pre>
+<div class="block">Initialize the backing store in the abstract parent multivalued map
+ implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>store</code> - the backing <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> to be used as a [key, multi-value]
+              store. Must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the underlying <code>store</code> parameter
+                              is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="putSingle(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="putSingle(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putSingle</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;putSingle&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                            <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Set the value for the key to be a one item list consisting of the supplied
+ value. Any existing values will be replaced.
+ <p/>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value
+ of <code>null</code> is ignored and not added to the purged value list.
+ As a result of such operation, empty value list would  be registered for
+ the supplied key. Overriding implementations may modify this behavior by
+ redefining the <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#putSingle(K,V)">putSingle</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the single value of the key. If the value is <code>null</code> it
+              will be ignored.</dd>
+</dl>
+</li>
+</ul>
+<a id="addNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addNull&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</pre>
+<div class="block">Define the behavior for adding a <code>null</code> values to the value list.
+ <p/>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored.
+ Overriding implementations may modify this behavior by providing their
+ own definitions of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being
+               requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirstNull(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirstNull</h4>
+<pre class="methodSignature">protected&nbsp;void&nbsp;addFirstNull&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;values)</pre>
+<div class="block">Define the behavior for adding a <code>null</code> values to the first position
+ in the value list.
+ <p/>
+ Default implementation is a no-op, i.e. the <code>null</code> values are ignored.
+ Overriding implementations may modify this behavior by providing their
+ own definitions of this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - value list where the <code>null</code> value addition is being
+               requested.</dd>
+</dl>
+</li>
+</ul>
+<a id="add(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="add(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;add&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                      <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the current list of values for the supplied key.
+ <p/>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value
+ of <code>null</code> is ignored and not added to the value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#add(K,V)">add</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.lang.Object[])">
+<!--   -->
+</a><a id="addAll(K,V...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addAll&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                         <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>...&nbsp;newValues)</pre>
+<div class="block">Add multiple values to the current list of values for the supplied key. If
+ the supplied array of new values is empty, method returns immediately.
+ Method throws a <code>NullPointerException</code> if the supplied array of values
+ is <code>null</code>.
+ <p/>
+ NOTE: This implementation ignores <code>null</code> values; Any of the supplied values
+ of <code>null</code> is ignored and not added to the value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addAll(K,V...)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>newValues</code> - the values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied array of new values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="addAll(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addAll&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key. If the supplied value list is empty, method
+ returns immediately. Method throws a <code>NullPointerException</code> if the
+ supplied array of values is <code>null</code>.
+ <p/>
+ NOTE: This implementation ignores <code>null</code> values; Any <code>null</code> value
+ in the supplied value list is ignored and not added to the value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addNull(java.util.List)"><code>addNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addAll(K,java.util.List)">addAll</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>valueList</code> - the list of values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied value list is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature">public final&nbsp;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;getFirst&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MultivaluedMap.html#getFirst(K)">MultivaluedMap</a></code></span></div>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#getFirst(K)">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the first value for the specified key or null if the key is
+         not in the map.</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirst(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="addFirst(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirst</h4>
+<pre class="methodSignature">public final&nbsp;void&nbsp;addFirst&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                           <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.
+ <p/>
+ NOTE: This implementation ignores <code>null</code> values; A supplied value
+ of <code>null</code> is ignored and not added to the purged value list. Overriding
+ implementations may modify this behavior by redefining the
+ <a href="#addFirstNull(java.util.List)"><code>addFirstNull(java.util.List)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#addFirst(K,V)">addFirst</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValues(java.lang.Object)">
+<!--   -->
+</a><a id="getValues(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre class="methodSignature">protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;getValues&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block">Return a non-null list of values for a given key. The returned list may be
+ empty.
+ <p/>
+ If there is no entry for the key in the map, a new empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a>
+ instance is created, registered within the map to hold the values of
+ the key and returned from the method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value list registered with the key. The method is guaranteed to never
+         return <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">
+ <p/>
+ This implementation delegates the method call to to the the underlying
+ [key, multi-value] store.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a hash code value for the underlying [key, multi-value] store.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<div class="block">
+ <p/>
+ This implementation delegates the method call to to the the underlying
+ [key, multi-value] store.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the specified object is equal to the underlying
+         [key, multi-value] store, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;values()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#values()" title="class or interface in java.util" class="externalLink">values</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="size()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>size</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;size()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="remove(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>remove</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;remove&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="putAll(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putAll</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;putAll&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&nbsp;m)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll(java.util.Map)" title="class or interface in java.util" class="externalLink">putAll</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="put(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="put(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>put</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;put&#8203;(<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&nbsp;key,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;value)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#put(K,V)" title="class or interface in java.util" class="externalLink">put</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="keySet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>keySet</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>&gt;&nbsp;keySet()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#keySet()" title="class or interface in java.util" class="externalLink">keySet</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="isEmpty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isEmpty()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="get(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;get&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#get(java.lang.Object)" title="class or interface in java.util" class="externalLink">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="entrySet()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entrySet</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&gt;&gt;&nbsp;entrySet()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#entrySet()" title="class or interface in java.util" class="externalLink">entrySet</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="containsValue(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsValue</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;containsValue&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsValue(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsValue</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="containsKey(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsKey</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;containsKey&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsKey(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsKey</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="clear()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clear</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#clear()" title="class or interface in java.util" class="externalLink">clear</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a id="equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equalsIgnoreValueOrder</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equalsIgnoreValueOrder&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="MultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">MultivaluedMap</a></code></span></div>
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key. Specifically, the values associated with
+ each key are compared as if they were ordered lists.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="MultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></code>&nbsp;in interface&nbsp;<code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>omap</code> - map to be compared to this one.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the maps are equal modulo value ordering.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractMultivaluedMap.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Application.html b/apidocs/2.1.6/javax/ws/rs/core/Application.html
new file mode 100644
index 0000000..0481579
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Application.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Application (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Application (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Application.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Application" class="title">Class Application</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Application</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Application</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Defines the components of an application and supplies additional
+ meta-data. An application or implementation supplies a concrete
+ subclass of this abstract class.
+ <p>
+ The implementation-created instance of an Application subclass may be
+ injected into resource classes and providers using
+ <a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a>.
+ </p>
+ <p>
+ In case any of the <code>Application</code> subclass methods or it's constructor
+ throws a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>RuntimeException</code></a>, the deployment of the application SHOULD
+ be aborted with a failure.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Application</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClasses()">getClasses</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> classes.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of custom application-wide properties.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSingletons()">getSingletons</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instances.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Application</h4>
+<pre>public&nbsp;Application()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getClasses()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClasses</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;getClasses()</pre>
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> classes.
+
+ The default life-cycle for resource class instances is per-request. The default
+ life-cycle for providers (registered directly or via a feature) is singleton.
+ <p>
+ Implementations should warn about and ignore classes that do not
+ conform to the requirements of root resource or provider/feature classes.
+ Implementations should warn about and ignore classes for which
+ <a href="#getSingletons()"><code>getSingletons()</code></a> returns an instance. Implementations MUST
+ NOT modify the returned set.
+ </p>
+ <p>
+ The default implementation returns an empty set.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a set of root resource and provider classes. Returning <code>null</code>
+         is equivalent to returning an empty set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSingletons()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSingletons</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getSingletons()</pre>
+<div class="block">Get a set of root resource, provider and <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instances.
+
+ Fields and properties of returned instances are injected with their declared
+ dependencies (see <a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a>) by the runtime prior to use.
+ <p>
+ Implementations should warn about and ignore classes that do not
+ conform to the requirements of root resource or provider classes.
+ Implementations should flag an error if the returned set includes
+ more than one instance of the same class. Implementations MUST
+ NOT modify the returned set.
+ </p>
+ <p>
+ The default implementation returns an empty set.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a set of root resource and provider instances. Returning <code>null</code>
+         is equivalent to returning an empty set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getProperties()</pre>
+<div class="block">Get a map of custom application-wide properties.
+ <p>
+ The returned properties are reflected in the application <a href="Configuration.html" title="interface in javax.ws.rs.core"><code>configuration</code></a>
+ passed to the server-side features or injected into server-side components.
+ </p>
+ <p>
+ The set of returned properties may be further extended or customized at deployment time
+ using container-specific features and deployment descriptors. For example, in a Servlet-based
+ deployment scenario, web application's <code>&lt;context-param&gt;</code> and Servlet <code>&lt;init-param&gt;</code>
+ values may be used to extend or override values of the properties programmatically returned
+ by this method.
+ </p>
+ <p>
+ The default implementation returns an empty set.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a map of custom application-wide properties. Returning <code>null</code>
+         is equivalent to returning an empty set.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Application.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/CacheControl.html b/apidocs/2.1.6/javax/ws/rs/core/CacheControl.html
new file mode 100644
index 0000000..7937833
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/CacheControl.html
@@ -0,0 +1,859 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>CacheControl (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CacheControl (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CacheControl.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class CacheControl" class="title">Class CacheControl</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.CacheControl</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">CacheControl</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 section 14.9</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">CacheControl</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of CacheControl.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares object argument to this cache control to see if they are the same
+ considering all property values.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCacheExtension()">getCacheExtension</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to a set of extension cache control directives.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxAge()">getMaxAge</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNoCacheFields()">getNoCacheFields</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the value of the no-cache cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPrivateFields()">getPrivateFields</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the value of the private cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSMaxAge()">getSMaxAge</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate hash code from cache control properties.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMustRevalidate()">isMustRevalidate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoCache()">isNoCache</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoStore()">isNoStore</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoTransform()">isNoTransform</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPrivate()">isPrivate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the private cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isProxyRevalidate()">isProxyRevalidate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the proxy-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMaxAge(int)">setMaxAge</a></span>&#8203;(int&nbsp;maxAge)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the max-age cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMustRevalidate(boolean)">setMustRevalidate</a></span>&#8203;(boolean&nbsp;mustRevalidate)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNoCache(boolean)">setNoCache</a></span>&#8203;(boolean&nbsp;noCache)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNoStore(boolean)">setNoStore</a></span>&#8203;(boolean&nbsp;noStore)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-store cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setNoTransform(boolean)">setNoTransform</a></span>&#8203;(boolean&nbsp;noTransform)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPrivate(boolean)">setPrivate</a></span>&#8203;(boolean&nbsp;flag)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the private cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProxyRevalidate(boolean)">setProxyRevalidate</a></span>&#8203;(boolean&nbsp;proxyRevalidate)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSMaxAge(int)">setSMaxAge</a></span>&#8203;(int&nbsp;sMaxAge)</code></th>
+<td class="colLast">
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the cache control to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>static <a href="CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of CacheControl by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CacheControl</h4>
+<pre>public&nbsp;CacheControl()</pre>
+<div class="block">Create a new instance of CacheControl. The new instance will have the
+ following default settings:
+
+ <ul>
+ <li>private = false</li>
+ <li>noCache = false</li>
+ <li>noStore = false</li>
+ <li>noTransform = true</li>
+ <li>mustRevalidate = false</li>
+ <li>proxyRevalidate = false</li>
+ <li>An empty list of private fields</li>
+ <li>An empty list of no-cache fields</li>
+ <li>An empty map of cache extensions</li>
+ </ul></div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance of CacheControl by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the cache control string</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created CacheControl</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed
+                                  or is null</dd>
+</dl>
+</li>
+</ul>
+<a id="isMustRevalidate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isMustRevalidate</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isMustRevalidate()</pre>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the must-revalidate cache control directive will be included in the
+ response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMustRevalidate(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMustRevalidate</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMustRevalidate&#8203;(boolean&nbsp;mustRevalidate)</pre>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mustRevalidate</code> - true if the must-revalidate cache control directive should be included in the
+                       response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isProxyRevalidate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isProxyRevalidate</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isProxyRevalidate()</pre>
+<div class="block">Corresponds to the proxy-revalidate cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the proxy-revalidate cache control directive will be included in the
+ response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProxyRevalidate(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProxyRevalidate</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setProxyRevalidate&#8203;(boolean&nbsp;proxyRevalidate)</pre>
+<div class="block">Corresponds to the must-revalidate cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>proxyRevalidate</code> - true if the proxy-revalidate cache control directive should be included in the
+                        response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4">HTTP/1.1 section 14.9.4</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxAge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxAge</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxAge()</pre>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the max-age cache control directive, -1 if the directive is disabled.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setMaxAge(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setMaxAge</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setMaxAge&#8203;(int&nbsp;maxAge)</pre>
+<div class="block">Corresponds to the max-age cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>maxAge</code> - the value of the max-age cache control directive, a value of -1 will disable the directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getSMaxAge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSMaxAge</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getSMaxAge()</pre>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the s-maxage cache control directive, -1 if the directive is disabled.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setSMaxAge(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSMaxAge</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setSMaxAge&#8203;(int&nbsp;sMaxAge)</pre>
+<div class="block">Corresponds to the s-maxage cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sMaxAge</code> - the value of the s-maxage cache control directive, a value of -1 will disable the directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3">HTTP/1.1 section 14.9.3</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getNoCacheFields()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNoCacheFields</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;&nbsp;getNoCacheFields()</pre>
+<div class="block">Corresponds to the value of the no-cache cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mutable list of field-names that will form the value of the no-cache cache control directive.
+ An empty list results in a bare no-cache directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isNoCache()"><code>isNoCache()</code></a>, 
+<a href="#setNoCache(boolean)"><code>setNoCache(boolean)</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setNoCache(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNoCache</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setNoCache&#8203;(boolean&nbsp;noCache)</pre>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>noCache</code> - true if the no-cache cache control directive should be included in the
+                response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getNoCacheFields()"><code>getNoCacheFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isNoCache()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNoCache</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNoCache()</pre>
+<div class="block">Corresponds to the no-cache cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the no-cache cache control directive will be included in the
+ response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getNoCacheFields()"><code>getNoCacheFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isPrivate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isPrivate</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isPrivate()</pre>
+<div class="block">Corresponds to the private cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the private cache control directive will be included in the
+ response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPrivateFields()"><code>getPrivateFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPrivateFields()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrivateFields</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;&nbsp;getPrivateFields()</pre>
+<div class="block">Corresponds to the value of the private cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mutable list of field-names that will form the value of the private cache control directive.
+ An empty list results in a bare no-cache directive.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isPrivate()"><code>isPrivate()</code></a>, 
+<a href="#setPrivate(boolean)"><code>setPrivate(boolean)</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setPrivate(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrivate</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setPrivate&#8203;(boolean&nbsp;flag)</pre>
+<div class="block">Corresponds to the private cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>flag</code> - true if the private cache control directive should be included in the
+             response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPrivateFields()"><code>getPrivateFields()</code></a>, 
+<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1">HTTP/1.1 section 14.9.1</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isNoTransform()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNoTransform</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNoTransform()</pre>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the no-transform cache control directive will be included in the
+ response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5">HTTP/1.1 section 14.9.5</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setNoTransform(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNoTransform</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setNoTransform&#8203;(boolean&nbsp;noTransform)</pre>
+<div class="block">Corresponds to the no-transform cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>noTransform</code> - true if the no-transform cache control directive should be included in the
+                    response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5">HTTP/1.1 section 14.9.5</a></dd>
+</dl>
+</li>
+</ul>
+<a id="isNoStore()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isNoStore</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isNoStore()</pre>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the no-store cache control directive will be included in the
+ response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2">HTTP/1.1 section 14.9.2</a></dd>
+</dl>
+</li>
+</ul>
+<a id="setNoStore(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setNoStore</h4>
+<pre class="methodSignature">public&nbsp;void&nbsp;setNoStore&#8203;(boolean&nbsp;noStore)</pre>
+<div class="block">Corresponds to the no-store cache control directive.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>noStore</code> - true if the no-store cache control directive should be included in the
+                response, false otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2">HTTP/1.1 section 14.9.2</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getCacheExtension()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCacheExtension</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getCacheExtension()</pre>
+<div class="block">Corresponds to a set of extension cache control directives.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a mutable map of cache control extension names and their values.
+ If a key has a null value, it will appear as a bare directive. If a key has
+ a value that contains no whitespace then the directive will appear as
+ a simple name=value pair. If a key has a value that contains whitespace
+ then the directive will appear as a quoted name="value" pair.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.6">HTTP/1.1 section 14.9.6</a></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Convert the cache control to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a stringified cache control</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate hash code from cache control properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hashCode</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares object argument to this cache control to see if they are the same
+ considering all property values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the two cache controls are the same, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CacheControl.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Configurable.html b/apidocs/2.1.6/javax/ws/rs/core/Configurable.html
new file mode 100644
index 0000000..afe780e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Configurable.html
@@ -0,0 +1,765 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Configurable (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Configurable (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configurable.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface Configurable" class="title">Interface Configurable&lt;C extends Configurable&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="../client/Client.html" title="interface in javax.ws.rs.client">Client</a></code>, <code><a href="FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></code>, <code><a href="../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="../client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">Configurable&lt;C extends Configurable&gt;</span></pre>
+<div class="block">Represents a client or server-side configurable context.
+
+ A configurable context can be used to define the components as well as
+ additional meta-data that should be used in the scope of the configured context.
+ The modification of the context typically involves setting properties or registering
+ custom components, such as providers and/or features.
+ All modifications of a <code>Configurable</code> context are reflected in the associated
+ <a href="Configuration.html" title="interface in javax.ws.rs.core"><code>Configuration</code></a> state which is exposed via <a href="#getConfiguration()"><code>getConfiguration()</code></a> method.
+ <p>
+ A configurable context can be either indirectly associated with a particular component
+ (such as application or resource method configurable context passed to a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a>
+ or <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a> meta-providers) or can be directly represented
+ by a concrete component implementing the <code>Configurable</code> interface
+ (such as <a href="../client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> or <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>WebTarget</code></a>).
+ As such, the exact scope of a configuration context is typically determined by a use case
+ scenario in which the context is accessed.
+ </p>
+ <h3>Setting properties.</h3>
+ <p>
+ New properties can be set using the <a href="#property(java.lang.String,java.lang.Object)"><code>property(java.lang.String, java.lang.Object)</code></a> method. Similarly, updating a value of
+ an existing property can be achieved using the same method. Information about the configured set of
+ properties is available via the underlying <code>Configuration</code> object. An existing property
+ can be removed by assigning a <code>null</code> value to the property.
+ </p>
+ <h3>Registering components.</h3>
+ <p>
+ Registered custom component classes and instances are important part of the contextual
+ configuration information as these are the main factors that determine the capabilities of
+ a configured runtime.
+ Implementations SHOULD warn about and ignore registrations that do not conform to the requirements
+ of supported components in a given configurable context.
+ </p>
+ <p>
+ In most cases, when registering a component, the simplest form of methods
+ (<a href="#register(java.lang.Class)"><code>register(Class)</code></a> or <a href="#register(java.lang.Object)"><code>register(Object)</code></a>) of the available registration API
+ is sufficient.
+ </p>
+ <p>
+ For example:
+ <pre>
+ config.register(HtmlDocumentReader.class);
+ config.register(new HtmlDocumentWriter(writerConfig));
+ </pre>
+ </p>
+ <p>
+ In some situations a component class or instance may implement multiple
+ provider contracts recognized by an implementation (e.g. filter, interceptor or entity provider).
+ By default, the implementation MUST register the new component class or instance as
+ a provider for all the recognized provider contracts implemented by the component class.
+ </p>
+ <p>
+ For example:
+ <pre>
+ &#64;Priority(ENTITY_CODER)
+ public class GzipInterceptor
+         implements ReaderInterceptor, WriterInterceptor { ... }
+
+ ...
+
+ // register GzipInterceptor as a ReaderInterceptor
+ // as well as a WriterInterceptor
+ config.register(GzipInterceptor.class);
+ </pre>
+ </p>
+ <p>
+ There are however situations when the default registration of a component to all the
+ recognized provider contracts is not desirable. In such cases users may use other versions of the
+ <code>register(...)</code> method to explicitly specify the collection of the provider contracts
+ for which the component should be registered and/or the priority of each registered
+ provider contract.
+ </p>
+ <p>
+ For example:
+ <pre>
+ &#64;Priority(USER)
+ public class ClientLoggingFilter
+         implements ClientRequestFilter, ClientResponseFilter { ... }
+
+ &#64;Priority(ENTITY_CODER)
+ public class GzipInterceptor
+         implements ReaderInterceptor, WriterInterceptor { ... }
+
+ ...
+
+ // register ClientLoggingFilter as a ClientResponseFilter only
+ config.register(ClientLoggingFilter.class, ClientResponseFilter.class);
+
+ // override the priority of registered GzipInterceptor
+ // and both of it's provider contracts
+ config.register(GzipInterceptor.class, 6500);
+ </pre>
+ </p>
+ <p>
+ As a general rule, for each component class there can be at most one registration
+ &mdash; class-based or instance-based &mdash; configured at any given moment. Implementations
+ MUST reject any attempts to configure a new registration for a provider class that has been
+ already registered in the given configurable context earlier. Implementations SHOULD also raise
+ a warning to inform the user about the rejected component registration.
+ </p>
+ <p>
+ For example:
+ <pre>
+ config.register(GzipInterceptor.class, WriterInterceptor.class);
+ config.register(GzipInterceptor.class);       // Rejected by runtime.
+ config.register(new GzipInterceptor());       // Rejected by runtime.
+ config.register(GzipInterceptor.class, 6500); // Rejected by runtime.
+
+ config.register(new ClientLoggingFilter());
+ config.register(ClientLoggingFilter.class);   // rejected by runtime.
+ config.register(ClientLoggingFilter.class,
+                 ClientResponseFilter.class);  // Rejected by runtime.
+ </pre>
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a live view of an internal configuration state of this configurable instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#property(java.lang.String,java.lang.Object)">property</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the new configuration property, if already set, the existing value of
+ the property will be updated.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,int)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+        int&nbsp;priority)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.lang.Class...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Class,java.util.Map)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,int)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+        int&nbsp;priority)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,java.lang.Class...)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="Configurable.html" title="type parameter in Configurable">C</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.lang.Object,java.util.Map)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</code></th>
+<td class="colLast">
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getConfiguration()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre class="methodSignature"><a href="Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Get a live view of an internal configuration state of this configurable instance.
+
+ Any changes made using methods of this <code>Configurable</code> instance will be reflected
+ in the returned <code>Configuration</code> instance.
+ <p>
+ The returned <code>Configuration</code> instance and the collection data it provides are not
+ thread-safe wrt. modification made using methods on the parent configurable object.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>configuration live view of the internal configuration state.</dd>
+</dl>
+</li>
+</ul>
+<a id="property(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>property</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;property&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Set the new configuration property, if already set, the existing value of
+ the property will be updated. Setting a <code>null</code> value into a property
+ effectively removes the property from the property bag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dd><code>value</code> - (new) property value. <code>null</code> value removes the property
+              with the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</pre>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+
+ Implementations SHOULD warn about and ignore registrations that do not
+ conform to the requirements of supported component types in the
+ given configurable context. Any subsequent registration attempts for a component
+ type, for which a class or instance-based registration already exists in the system
+ MUST be rejected by the API implementation and a warning SHOULD be raised to
+ inform the user about the rejected registration.
+
+ The registered component class is registered as a contract provider of
+ all the recognized API or implementation-specific extension contracts including
+ meta-provider contracts, such as <code>Feature</code> or <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>.
+ <p>
+ As opposed to component instances registered via <a href="#register(java.lang.Object)"><code>register(Object)</code></a> method,
+ the lifecycle of components registered using this class-based <code>register(...)</code>
+ method is fully managed by the implementation or any underlying IoC
+ container supported by the implementation.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - component class to be configured in the scope of this
+                       configurable context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+           int&nbsp;priority)</pre>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Class)"><code>register(Class)</code></a>
+ except that any priority specified on the registered component class via
+ <code>javax.annotation.Priority</code> annotation is overridden with the supplied
+ <code>priority</code> value.
+ </p>
+ <p>
+ Note that in case the priority is not applicable to a particular
+ provider contract implemented by the class of the registered component, the supplied
+ <code>priority</code> value will be ignored for that contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - component class to be configured in the scope of this
+                       configurable context.</dd>
+<dd><code>priority</code> - the overriding priority for the registered component
+                       and all the provider contracts the component implements.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</pre>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Class)"><code>register(Class)</code></a>
+ except the component class is only registered as a provider of the listed
+ extension provider or meta-provider <code>contracts</code>.
+ All explicitly enumerated contract types must represent a class or an interface
+ implemented or extended by the registered component. Contracts that are not
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered component class
+ MUST be ignored and implementations SHOULD raise a warning to inform users about the
+ ignored contract(s).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - component class to be configured in the scope of this
+                       configurable context.</dd>
+<dd><code>contracts</code> - the specific extension provider or meta-provider contracts
+                       implemented by the component for which the component should
+                       be registered.
+                       Implementations MUST ignore attempts to register a component
+                       class for an empty or <code>null</code> collection of contracts via
+                       this method and SHOULD raise a warning about such event.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Class,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</pre>
+<div class="block">Register a class of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+ <p>
+ This registration method provides same functionality as <a href="#register(java.lang.Class,java.lang.Class...)"><code>register(Class, Class[])</code></a>
+ except that any priority specified on the registered component class via
+ <code>javax.annotation.Priority</code> annotation is overridden
+ for each extension provider contract type separately with an integer priority value
+ specified as a value in the supplied map of [contract type, priority] pairs.
+ </p>
+ <p>
+ Note that in case a priority is not applicable to a provider contract registered
+ for the component, the supplied priority value is ignored for such
+ contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - component class to be configured in the scope of this
+                       configurable context.</dd>
+<dd><code>contracts</code> - map of the specific extension provider and meta-provider contracts
+                       and their associated priorities for which the component
+                       is registered.
+                       All contracts in the map must represent a class or an interface
+                       implemented or extended by the component. Contracts that are
+                       not <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered
+                       component class MUST be ignored and implementations SHOULD raise a warning
+                       to inform users about the ignored contract(s).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</pre>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+
+ Implementations SHOULD warn about and ignore registrations that do not
+ conform to the requirements of supported component types in the
+ given configurable context. Any subsequent registration attempts for a component
+ type, for which a class or instance-based registration already exists in the system
+ MUST be rejected by the API implementation and a warning SHOULD be raised to
+ inform the user about the rejected registration.
+
+ The registered component is registered as a contract provider of
+ all the recognized API or implementation-specific extension contracts including
+ meta-provider contracts, such as <code>Feature</code> or <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>.
+ <p>
+ As opposed to components registered via <a href="#register(java.lang.Class)"><code>register(Class)</code></a> method,
+ the lifecycle of providers registered using this instance-based <code>register(...)</code>
+ is not managed by the runtime. The same registered component instance is used during
+ the whole lifespan of the configurable context.
+ Fields and properties of all registered component instances are injected with their
+ declared dependencies (see <a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a>) by the runtime prior to use.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - component instance to be configured in the scope of this
+                  configurable context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+           int&nbsp;priority)</pre>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Object)"><code>register(Object)</code></a>
+ except that any priority specified on the registered component class via
+ <code>javax.annotation.Priority</code> annotation is overridden with the supplied
+ <code>priority</code> value.
+ </p>
+ <p>
+ Note that in case the priority is not applicable to a particular
+ provider contract implemented by the class of the registered component, the supplied
+ <code>priority</code> value will be ignored for that contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - component instance to be configured in the scope of this
+                  configurable context.</dd>
+<dd><code>priority</code> - the overriding priority for the registered component
+                  and all the provider contracts the component implements.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,java.lang.Class...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;...&nbsp;contracts)</pre>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+ <p>
+ This registration method provides the same functionality as <a href="#register(java.lang.Object)"><code>register(Object)</code></a>
+ except the component class is only registered as a provider of the listed
+ extension provider or meta-provider <code>contracts</code>.
+ All explicitly enumerated contract types must represent a class or an interface
+ implemented or extended by the registered component. Contracts that are not
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered component class
+ MUST be ignored and implementations SHOULD raise a warning to inform users about the
+ ignored contract(s).
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - component instance to be configured in the scope of this
+                  configurable context.</dd>
+<dd><code>contracts</code> - the specific extension provider or meta-provider contracts
+                  implemented by the component for which the component should
+                  be registered.
+                  Implementations MUST ignore attempts to register a component
+                  class for an empty or <code>null</code> collection of contracts via
+                  this method and SHOULD raise a warning about such event.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.lang.Object,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature"><a href="Configurable.html" title="type parameter in Configurable">C</a>&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;contracts)</pre>
+<div class="block">Register an instance of a custom component (such as an extension provider or
+ a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> meta-provider) to be instantiated
+ and used in the scope of this configurable context.
+ <p>
+ This registration method provides same functionality as <a href="#register(java.lang.Object,java.lang.Class...)"><code>register(Object, Class[])</code></a>
+ except that any priority specified on the registered component class via
+ <code>javax.annotation.Priority</code> annotation is overridden
+ for each extension provider contract type separately with an integer priority value
+ specified as a value in the supplied map of [contract type, priority] pairs.
+ </p>
+ <p>
+ Note that in case a priority is not applicable to a provider contract registered
+ for the component, the supplied priority value is ignored for such
+ contract.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - component instance to be configured in the scope of this
+                  configurable context.</dd>
+<dd><code>contracts</code> - map of the specific extension provider and meta-provider contracts
+                  and their associated priorities for which the component
+                  is registered.
+                  All contracts in the map must represent a class or an interface
+                  implemented or extended by the component. Contracts that are
+                  not <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true#isAssignableFrom(java.lang.Class)" title="class or interface in java.lang" class="externalLink"><code>assignable from</code></a> the registered
+                  component class MUST be ignored and implementations SHOULD raise a warning
+                  to inform users about the ignored contract(s).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated configurable context.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configurable.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Configuration.html b/apidocs/2.1.6/javax/ws/rs/core/Configuration.html
new file mode 100644
index 0000000..2eda44e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Configuration.html
@@ -0,0 +1,542 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Configuration (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Configuration (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configuration.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface Configuration" class="title">Interface Configuration</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Configuration</span></pre>
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a> context.
+ Defines the components as well as additional meta-data for the configured context.
+ <p>
+ A configuration state may be used to retrieve configuration information about
+ of the associated context (e.g. application, resource method, etc.) or component
+ (e.g. <a href="../client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>, <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>WebTarget</code></a>, etc.).
+ Configuration information consists of properties, registered component classes
+ and/or instances.
+ </p>
+ <p>
+ This interface can be injected using the <a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a> annotation.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getClasses()">getClasses</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable set of registered component (such as provider or
+ <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a>) classes to be instantiated, injected and utilized in the scope
+ of the configurable instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContracts(java.lang.Class)">getContracts</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</code></th>
+<td class="colLast">
+<div class="block">Get the extension contract registration information for a component of a given class.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstances()">getInstances</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable set of registered component (such as provider or
+ <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a>) instances to be utilized by the configurable instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperties()">getProperties</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable bag of configuration properties.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the value for the property with a given name.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the
+ property names available within the context of the current configuration instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRuntimeType()">getRuntimeType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the runtime type of this configuration context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnabled(java.lang.Class)">isEnabled</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Feature.html" title="interface in javax.ws.rs.core">Feature</a>&gt;&nbsp;featureClass)</code></th>
+<td class="colLast">
+<div class="block">Check if a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been
+ previously enabled in the runtime configuration context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEnabled(javax.ws.rs.core.Feature)">isEnabled</a></span>&#8203;(<a href="Feature.html" title="interface in javax.ws.rs.core">Feature</a>&nbsp;feature)</code></th>
+<td class="colLast">
+<div class="block">Check if a particular <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance has been previously
+ enabled in the runtime configuration context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRegistered(java.lang.Class)">isRegistered</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</code></th>
+<td class="colLast">
+<div class="block">Check if a component of the supplied <code>componentClass</code> class has been previously
+ registered in the runtime configuration context.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRegistered(java.lang.Object)">isRegistered</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</code></th>
+<td class="colLast">
+<div class="block">Check if a particular API <code>component</code> instance (such as providers or
+ <a href="Feature.html" title="interface in javax.ws.rs.core"><code>features</code></a>) has been previously registered in the runtime configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRuntimeType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRuntimeType</h4>
+<pre class="methodSignature"><a href="../RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a>&nbsp;getRuntimeType()</pre>
+<div class="block">Get the runtime type of this configuration context.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>configuration context runtime type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperties()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperties</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getProperties()</pre>
+<div class="block">Get the immutable bag of configuration properties.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the immutable view of configuration properties.</dd>
+</dl>
+</li>
+</ul>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the value for the property with a given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - property name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the property value for the specified property name or <code>null</code>
+         if the property with such name is not configured.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the
+ property names available within the context of the current configuration instance.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of
+ a property.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isEnabled(javax.ws.rs.core.Feature)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEnabled</h4>
+<pre class="methodSignature">boolean&nbsp;isEnabled&#8203;(<a href="Feature.html" title="interface in javax.ws.rs.core">Feature</a>&nbsp;feature)</pre>
+<div class="block">Check if a particular <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance has been previously
+ enabled in the runtime configuration context.
+ <p>
+ Method returns <code>true</code> only in case an instance equal to the <code>feature</code>
+ instance is already present among the features previously successfully enabled in
+ the configuration context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>feature</code> - a feature instance to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the feature instance has been previously enabled in this
+         configuration context, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isEnabled(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEnabled</h4>
+<pre class="methodSignature">boolean&nbsp;isEnabled&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="Feature.html" title="interface in javax.ws.rs.core">Feature</a>&gt;&nbsp;featureClass)</pre>
+<div class="block">Check if a <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been
+ previously enabled in the runtime configuration context.
+ <p>
+ Method returns <code>true</code> in case any instance of the <code>featureClass</code> class is
+ already present among the features previously successfully enabled in the configuration
+ context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>featureClass</code> - a feature class to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if a feature of a given class has been previously enabled in this
+         configuration context, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isRegistered(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRegistered</h4>
+<pre class="methodSignature">boolean&nbsp;isRegistered&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;component)</pre>
+<div class="block">Check if a particular API <code>component</code> instance (such as providers or
+ <a href="Feature.html" title="interface in javax.ws.rs.core"><code>features</code></a>) has been previously registered in the runtime configuration context.
+ <p>
+ Method returns <code>true</code> only in case an instance equal to the <code>component</code>
+ instance is already present among the components previously registered in the configuration
+ context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>component</code> - a component instance to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the component instance has been previously registered in this
+         configuration context, <code>false</code> otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isEnabled(javax.ws.rs.core.Feature)"><code>isEnabled(Feature)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isRegistered(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isRegistered</h4>
+<pre class="methodSignature">boolean&nbsp;isRegistered&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</pre>
+<div class="block">Check if a component of the supplied <code>componentClass</code> class has been previously
+ registered in the runtime configuration context.
+ <p>
+ Method returns <code>true</code> in case a component of the supplied <code>componentClass</code> class
+ is already present among the previously registered component classes or instances
+ in the configuration context.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>componentClass</code> - a component class to test for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if a component of a given class has been previously registered in this
+         configuration context, <code>false</code> otherwise.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#isEnabled(java.lang.Class)"><code>isEnabled(Class)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getContracts(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getContracts</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&nbsp;getContracts&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;componentClass)</pre>
+<div class="block">Get the extension contract registration information for a component of a given class.
+
+ For component classes that are not configured in this configuration context the method returns
+ an empty <code>Map</code>. Method does not return <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of extension contracts and their priorities for which the component class
+         is registered.
+         May return an empty map in case the component has not been registered for any
+         extension contract supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+<a id="getClasses()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getClasses</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&gt;&nbsp;getClasses()</pre>
+<div class="block">Get the immutable set of registered component (such as provider or
+ <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a>) classes to be instantiated, injected and utilized in the scope
+ of the configurable instance.
+ <p>
+ For each component type, there can be only a single class-based or instance-based registration
+ present in the configuration context at any given time.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the immutable set of registered component classes. The returned
+         value may be empty but will never be <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getInstances()"><code>getInstances()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getInstances()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getInstances</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getInstances()</pre>
+<div class="block">Get the immutable set of registered component (such as provider or
+ <a href="Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a>) instances to be utilized by the configurable instance.
+ Fields and properties of returned instances are injected with their declared dependencies
+ (see <a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a>) by the runtime prior to use.
+ <p>
+ For each component type, there can be only a single class-based or instance-based registration
+ present in the configuration context at any given time.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the immutable set of registered component instances. The returned
+         value may be empty but will never be <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getClasses()"><code>getClasses()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Configuration.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Context.html b/apidocs/2.1.6/javax/ws/rs/core/Context.html
new file mode 100644
index 0000000..2c3d8aa
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Context.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Context (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Context (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Context.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Annotation Type Context" class="title">Annotation Type Context</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>({<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation" class="externalLink">PARAMETER</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation" class="externalLink">METHOD</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation" class="externalLink">FIELD</a>})
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Context</span></pre>
+<div class="block">This annotation is used to inject information into a class
+ field, bean property or method parameter.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Application.html" title="class in javax.ws.rs.core"><code>Application</code></a>, 
+<a href="UriInfo.html" title="interface in javax.ws.rs.core"><code>UriInfo</code></a>, 
+<a href="Request.html" title="interface in javax.ws.rs.core"><code>Request</code></a>, 
+<a href="HttpHeaders.html" title="interface in javax.ws.rs.core"><code>HttpHeaders</code></a>, 
+<a href="SecurityContext.html" title="interface in javax.ws.rs.core"><code>SecurityContext</code></a>, 
+<a href="../ext/Providers.html" title="interface in javax.ws.rs.ext"><code>Providers</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Context.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Cookie.html b/apidocs/2.1.6/javax/ws/rs/core/Cookie.html
new file mode 100644
index 0000000..c60aabf
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Cookie.html
@@ -0,0 +1,623 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Cookie (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Cookie (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Cookie.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Cookie" class="title">Class Cookie</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Cookie</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><code><a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">Cookie</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.
+ RFC 2109 specifies the legal characters for name,
+ value, path and domain. The default version of 1 corresponds to RFC 2109.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_VERSION">DEFAULT_VERSION</a></span></code></th>
+<td class="colLast">
+<div class="block">Cookies using the default version correspond to RFC 2109.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">Cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)">Cookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+      int&nbsp;version)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compare for equality.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDomain()">getDomain</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the domain of the cookie.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the name of the cookie.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the cookie.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value of the cookie.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the version of the cookie.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate a hash code by hashing all of the cookies properties.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the cookie to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>static <a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>Cookie</code> by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_VERSION">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_VERSION</h4>
+<pre>public static final&nbsp;int DEFAULT_VERSION</pre>
+<div class="block">Cookies using the default version correspond to RFC 2109.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.Cookie.DEFAULT_VERSION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Cookie</h4>
+<pre>public&nbsp;Cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+              int&nbsp;version)
+       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dd><code>version</code> - the version of the specification to which the cookie complies.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Cookie</h4>
+<pre>public&nbsp;Cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain)
+       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Cookie</h4>
+<pre>public&nbsp;Cookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)
+       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance of <code>Cookie</code> by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the cookie string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created <code>Cookie</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed
+                                  or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block">Get the name of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie name.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the value of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie value.</dd>
+</dl>
+</li>
+</ul>
+<a id="getVersion()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVersion</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getVersion()</pre>
+<div class="block">Get the version of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie version.</dd>
+</dl>
+</li>
+</ul>
+<a id="getDomain()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDomain</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getDomain()</pre>
+<div class="block">Get the domain of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie domain.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath()</pre>
+<div class="block">Get the path of the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie path.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Convert the cookie to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a stringified cookie.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate a hash code by hashing all of the cookies properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the cookie hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compare for equality.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code>, if the object is a <code>Cookie</code> with the same
+         value for all properties, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Cookie.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/EntityTag.html b/apidocs/2.1.6/javax/ws/rs/core/EntityTag.html
new file mode 100644
index 0000000..1d5ffb9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/EntityTag.html
@@ -0,0 +1,457 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>EntityTag (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EntityTag (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EntityTag.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class EntityTag" class="title">Class EntityTag</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.EntityTag</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">EntityTag</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11">HTTP/1.1 section 3.11</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">EntityTag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of a strong <code>EntityTag</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,boolean)">EntityTag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         boolean&nbsp;weak)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of an <code>EntityTag</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares <code>obj</code> to this tag to see if they are the same considering
+ weakness and value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getValue()">getValue</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the value of an <code>EntityTag</code>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate hashCode based on value and weakness.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWeak()">isWeak</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check the strength of an <code>EntityTag</code>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the entity tag to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>static <a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>EntityTag</code> by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EntityTag</h4>
+<pre>public&nbsp;EntityTag&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance of a strong <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of the tag, quotes not included.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EntityTag</h4>
+<pre>public&nbsp;EntityTag&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 boolean&nbsp;weak)</pre>
+<div class="block">Creates a new instance of an <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of the tag, quotes not included.</dd>
+<dd><code>weak</code> - <code>true</code> if this represents a weak tag, <code>false</code> otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if value is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance of <code>EntityTag</code> by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the entity tag string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created entity tag.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed
+                                  or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWeak()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWeak</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWeak()</pre>
+<div class="block">Check the strength of an <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this represents a weak tag, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="getValue()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getValue()</pre>
+<div class="block">Get the value of an <code>EntityTag</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the value of the tag.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares <code>obj</code> to this tag to see if they are the same considering
+ weakness and value.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the two tags are the same, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate hashCode based on value and weakness.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Convert the entity tag to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a string version of the entity tag.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EntityTag.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Feature.html b/apidocs/2.1.6/javax/ws/rs/core/Feature.html
new file mode 100644
index 0000000..4d16362
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Feature.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Feature (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Feature (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Feature.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface Feature" class="title">Interface Feature</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Feature</span></pre>
+<div class="block">A feature extension contract.
+
+ Typically encapsulates a concept or facility that involves configuration of multiple providers
+ (e.g. filters or interceptors) and/or properties.
+ <p>
+ A <code>Feature</code> is a special type of configuration meta-provider. Once a feature is registered,
+ its <a href="#configure(javax.ws.rs.core.FeatureContext)"><code>configure(FeatureContext)</code></a> method is invoked during runtime configuration and bootstrapping
+ phase allowing the feature to further configure the runtime context in which it has been registered.
+ From within the invoked <code>configure(...)</code> method a feature may provide additional runtime configuration
+ for the facility or conceptual domain it represents, such as registering additional contract providers,
+ including nested features and/or specifying domain-specific properties.
+ </p>
+ <p>
+ Features implementing this interface MAY be annotated with the <a href="../ext/Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a>
+ annotation in order to be discovered by the runtime when scanning for resources and providers.
+ Please note that this will only work for server side features. Features in the Client API must
+ be registered programmatically.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#configure(javax.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A call-back method called when the feature is to be enabled in a given
+ runtime configuration scope.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="configure(javax.ws.rs.core.FeatureContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>configure</h4>
+<pre class="methodSignature">boolean&nbsp;configure&#8203;(<a href="FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</pre>
+<div class="block">A call-back method called when the feature is to be enabled in a given
+ runtime configuration scope.
+
+ The responsibility of the feature is to properly update the supplied runtime configuration context
+ and return <code>true</code> if the feature was successfully enabled or <code>false</code> otherwise.
+ <p>
+ Note that under some circumstances the feature may decide not to enable itself, which
+ is indicated by returning <code>false</code>. In such case the configuration context does
+ not add the feature to the collection of enabled features and a subsequent call to
+ <a href="Configuration.html#isEnabled(javax.ws.rs.core.Feature)"><code>Configuration.isEnabled(Feature)</code></a> or <a href="Configuration.html#isEnabled(java.lang.Class)"><code>Configuration.isEnabled(Class)</code></a> method
+ would return <code>false</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - configurable context in which the feature should be enabled.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the feature was successfully enabled, <code>false</code>
+         otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Feature.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/FeatureContext.html b/apidocs/2.1.6/javax/ws/rs/core/FeatureContext.html
new file mode 100644
index 0000000..01d4435
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/FeatureContext.html
@@ -0,0 +1,192 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>FeatureContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FeatureContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FeatureContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface FeatureContext" class="title">Interface FeatureContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&gt;</code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">FeatureContext</span>
+extends <a href="Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;<a href="FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&gt;</pre>
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.Configurable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.core.<a href="Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></h3>
+<code><a href="Configurable.html#getConfiguration()">getConfiguration</a>, <a href="Configurable.html#property(java.lang.String,java.lang.Object)">property</a>, <a href="Configurable.html#register(java.lang.Class)">register</a>, <a href="Configurable.html#register(java.lang.Class,int)">register</a>, <a href="Configurable.html#register(java.lang.Class,java.lang.Class...)">register</a>, <a href="Configurable.html#register(java.lang.Class,java.util.Map)">register</a>, <a href="Configurable.html#register(java.lang.Object)">register</a>, <a href="Configurable.html#register(java.lang.Object,int)">register</a>, <a href="Configurable.html#register(java.lang.Object,java.lang.Class...)">register</a>, <a href="Configurable.html#register(java.lang.Object,java.util.Map)">register</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FeatureContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Form.html b/apidocs/2.1.6/javax/ws/rs/core/Form.html
new file mode 100644
index 0000000..6f8ad80
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Form.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Form (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Form (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Form" class="title">Class Form</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Form</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Form</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents the the HTML form data request entity encoded using the
+ <code>"application/x-www-form-urlencoded"</code> content type.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Form</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">Form</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterName,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterValue)</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance with a single parameter entry.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)">Form</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance and register a custom underlying parameter store.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asMap()">asMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns multivalued map representation of the form.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Form.html" title="class in javax.ws.rs.core">Form</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a new value to the specified form parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form()</pre>
+<div class="block">Create a new form data instance.
+ <p>
+ The underlying form parameter store is configured to preserve the insertion order
+ of the parameters. I.e. parameters can be iterated in the same order as they were
+ inserted into the <code>Form</code>.
+ </p></div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterName,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterValue)</pre>
+<div class="block">Create a new form data instance with a single parameter entry.
+ <p>
+ The underlying form parameter store is configured to preserve the insertion order
+ of the parameters. I.e. parameters can be iterated in the same order as they were
+ inserted into the <code>Form</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameterName</code> - form parameter name.</dd>
+<dd><code>parameterValue</code> - form parameter value.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;store)</pre>
+<div class="block">Create a new form data instance and register a custom underlying parameter store.
+ <p>
+ This method is useful in situations when a custom parameter store is needed
+ in order to change the default parameter iteration order, improve performance
+ or facilitate other custom requirements placed on the parameter store.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>store</code> - form data store used by the created form instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="param(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>param</h4>
+<pre class="methodSignature">public&nbsp;<a href="Form.html" title="class in javax.ws.rs.core">Form</a>&nbsp;param&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Adds a new value to the specified form parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the parameter.</dd>
+<dd><code>value</code> - new parameter value to be added.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated <code>Form</code> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="asMap()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>asMap</h4>
+<pre class="methodSignature">public&nbsp;<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;asMap()</pre>
+<div class="block">Returns multivalued map representation of the form.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>form represented as multivalued map.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/GenericEntity.html b/apidocs/2.1.6/javax/ws/rs/core/GenericEntity.html
new file mode 100644
index 0000000..825ba06
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/GenericEntity.html
@@ -0,0 +1,491 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>GenericEntity (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GenericEntity (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericEntity.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class GenericEntity" class="title">Class GenericEntity&lt;T&gt;</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.GenericEntity&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - response entity instance type</dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">GenericEntity&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents a message entity of a generic type <code>T</code>.
+ <p>
+ Normally type erasure removes generic type information such that a
+ <a href="Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> instance that contains, e.g., an entity of type
+ <code>List&lt;String&gt;</code> appears to contain a raw <code>List&lt;?&gt;</code> at runtime.
+ When the generic type is required to select a suitable
+ <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a>, this class may be used to wrap the
+ entity and capture its generic type.
+ </p>
+ <p>
+ There are two ways to create an instance:
+ </p>
+ <ol>
+ <li>Create a (typically anonymous) subclass of this
+ class which enables retrieval of the type information at runtime despite
+ type erasure. For example, the following code shows how to create a
+ <a href="Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> containing an entity of type <code>List&lt;String&gt;</code> whose
+ generic type will be available at runtime for selection of a suitable
+ <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a>:
+
+ <pre>List&lt;String&gt; list = new ArrayList&lt;String&gt;();
+ GenericEntity&lt;List&lt;String&gt;&gt; entity = new GenericEntity&lt;List&lt;String&gt;&gt;(list) {};
+ Response response = Response.ok(entity).build();</pre>
+
+ <p>where <code>list</code> is the instance of <code>List&lt;String&gt;</code>
+ that will form the response body and entity is an instance of an anonymous
+ subclass of <code>GenericEntity</code>.</p></li>
+ <li>Create an instance directly by supplying the generic type information
+ with the entity. For example the following code shows how to create
+ a response containing the result of a method invoked via reflection:
+ <pre>Method method = ...;
+ GenericEntity&lt;Object&gt; entity = new GenericEntity&lt;Object&gt;(
+    method.invoke(...), method.getGenericReturnType());
+ Response response = Response.ok(entity).build();</pre></li>
+ <p>The above obtains the generic type from the return type of the method,
+ the raw type is the class of entity.</p>
+ </ol></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="GenericType.html" title="class in javax.ws.rs.core"><code>GenericType</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(T)">GenericEntity</a></span>&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new generic entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(T,java.lang.reflect.Type)">GenericEntity</a></span>&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of GenericEntity, supplying the generic type information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="GenericEntity.html" title="type parameter in GenericEntity">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the enclosed entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawType()">getRawType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets the raw type of the enclosed entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Gets underlying <code>Type</code> instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.Object)">
+<!--   -->
+</a><a id="&lt;init&gt;(T)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GenericEntity</h4>
+<pre>protected&nbsp;GenericEntity&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity)</pre>
+<div class="block">Constructs a new generic entity. Derives represented class from type
+ parameter. Note that this constructor is protected, users should create
+ a (usually anonymous) subclass as shown above.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the entity instance, must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if entity is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Object,java.lang.reflect.Type)">
+<!--   -->
+</a><a id="&lt;init&gt;(T,java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GenericEntity</h4>
+<pre>public&nbsp;GenericEntity&#8203;(<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;entity,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</pre>
+<div class="block">Create a new instance of GenericEntity, supplying the generic type information.
+ The entity must be assignable to a variable of the
+ supplied generic type, e.g. if <code>entity</code> is an instance of
+ <code>ArrayList&lt;String&gt;</code> then <code>genericType</code> could
+ be the same or a superclass of <code>ArrayList</code> with the same generic
+ type like <code>List&lt;String&gt;</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the entity instance, must not be <code>null</code>.</dd>
+<dd><code>genericType</code> - the generic type, must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the entity is not assignable to
+                                  a variable of the supplied generic type or if entity or genericType
+                                  is null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRawType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRawType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getRawType()</pre>
+<div class="block">Gets the raw type of the enclosed entity. Note that this is the raw type of
+ the instance, not the raw type of the type parameter. I.e. in the example
+ in the introduction, the raw type is <code>ArrayList</code> not <code>List</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the raw type.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getType()</pre>
+<div class="block">Gets underlying <code>Type</code> instance. Note that this is derived from the
+ type parameter, not the enclosed instance. I.e. in the example
+ in the introduction, the type is <code>List&lt;String&gt;</code> not
+ <code>ArrayList&lt;String&gt;</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature">public final&nbsp;<a href="GenericEntity.html" title="type parameter in GenericEntity">T</a>&nbsp;getEntity()</pre>
+<div class="block">Get the enclosed entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enclosed entity.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericEntity.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/GenericType.html b/apidocs/2.1.6/javax/ws/rs/core/GenericType.html
new file mode 100644
index 0000000..ffa5f6e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/GenericType.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>GenericType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GenericType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericType.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class GenericType" class="title">Class GenericType&lt;T&gt;</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.GenericType&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the generic type parameter.</dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">GenericType&lt;T&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Represents a generic message entity type <code>T</code>.
+
+ Supports in-line instantiation of objects that represent generic types with
+ actual type parameters. An object that represents any parameterized type may
+ be obtained by sub-classing <code>GenericType</code>. Alternatively, an object
+ representing a concrete parameterized type can be created using a
+ <a href="#%3Cinit%3E(java.lang.reflect.Type)"><code>GenericType(java.lang.reflect.Type)</code></a> and manually specifying
+ the <a href="#getType()"><code>actual (parameterized) type</code></a>.
+ <p>
+ For example:
+ </p>
+ <pre>
+  GenericType&lt;List&lt;String&gt;&gt; stringListType = new GenericType&lt;List&lt;String&gt;&gt;() {};
+ </pre>
+ <p>
+ Or:
+ </p>
+ <pre>
+  public class MyGenericType extends GenericType&lt;List&lt;String&gt;&gt; { ... }
+
+  ...
+
+  MyGenericType stringListType = new MyGenericType();
+ </pre>
+ <p>
+ Note that due to the Java type erasure limitations the parameterized type information
+ must be specified on a subclass, not just during the instance creation. For example,
+ the following case would throw an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a>:
+ </p>
+ <pre>
+  public class MyGenericType&lt;T&gt; extends GenericType&lt;T&gt; { ... }
+
+  ...
+
+  // The type is only specified on instance, not in a sub-class
+  MyGenericType&lt;List&lt;String&gt;&gt; stringListType =
+          new MyGenericType&lt;List&lt;String&gt;&gt;();
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Paul Sandoz, Martin Matula</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">GenericType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructs a new generic type, deriving the generic type and class from
+ type parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&nbsp;</code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.reflect.Type)">GenericType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new generic type, supplying the generic type
+ information and deriving the class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>static <a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forInstance(java.lang.Object)">forInstance</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;instance)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="GenericType.html" title="class in javax.ws.rs.core"><code>generic type</code></a> from a
+ Java <code>instance</code>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRawType()">getRawType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the object representing the class or interface that declared
+ the type represented by this generic type instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Retrieve the type represented by the generic type instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GenericType</h4>
+<pre>protected&nbsp;GenericType()</pre>
+<div class="block">Constructs a new generic type, deriving the generic type and class from
+ type parameter. Note that this constructor is protected, users should create
+ a (usually anonymous) subclass as shown above.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - in case the generic type parameter value is not
+                                  provided by any of the subclasses.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GenericType</h4>
+<pre>public&nbsp;GenericType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</pre>
+<div class="block">Constructs a new generic type, supplying the generic type
+ information and deriving the class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>genericType</code> - the generic type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if genericType is <code>null</code> or not an instance of
+                                  <code>Class</code> or <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/ParameterizedType.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>ParameterizedType</code></a> whose raw
+                                  type is an instance of <code>Class</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="forInstance(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>forInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&nbsp;forInstance&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;instance)</pre>
+<div class="block">Create a <a href="GenericType.html" title="class in javax.ws.rs.core"><code>generic type</code></a> from a
+ Java <code>instance</code>.
+ <p>
+ If the supplied instance is a <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a>, the generic type
+ will be computed using the <a href="GenericEntity.html#getType()"><code>GenericEntity.getType()</code></a>.
+ Otherwise <code>instance.getClass()</code> will be used.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instance</code> - Java instance for which the <code>GenericType</code> description should be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>GenericType</code> describing the Java <code>instance</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getType()</pre>
+<div class="block">Retrieve the type represented by the generic type instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the actual type represented by this generic type instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRawType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRawType</h4>
+<pre class="methodSignature">public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getRawType()</pre>
+<div class="block">Returns the object representing the class or interface that declared
+ the type represented by this generic type instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class or interface that declared the type represented by this
+         generic type instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GenericType.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/HttpHeaders.html b/apidocs/2.1.6/javax/ws/rs/core/HttpHeaders.html
new file mode 100644
index 0000000..2f06fca
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/HttpHeaders.html
@@ -0,0 +1,1188 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>HttpHeaders (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="HttpHeaders (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpHeaders.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface HttpHeaders" class="title">Interface HttpHeaders</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">HttpHeaders</span></pre>
+<div class="block">An injectable interface that provides access to HTTP header information.
+ All methods throw <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the
+ scope of a request (e.g. from a provider constructor).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT">ACCEPT</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT_CHARSET">ACCEPT_CHARSET</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT_ENCODING">ACCEPT_ENCODING</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ACCEPT_LANGUAGE">ACCEPT_LANGUAGE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW">ALLOW</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#AUTHORIZATION">AUTHORIZATION</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CACHE_CONTROL">CACHE_CONTROL</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_DISPOSITION">CONTENT_DISPOSITION</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc2183">IETF RFC-2183</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_ENCODING">CONTENT_ENCODING</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_ID">CONTENT_ID</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc2392">IETF RFC-2392</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_LANGUAGE">CONTENT_LANGUAGE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_LENGTH">CONTENT_LENGTH</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_LOCATION">CONTENT_LOCATION</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CONTENT_TYPE">CONTENT_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#COOKIE">COOKIE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DATE">DATE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ETAG">ETAG</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EXPIRES">EXPIRES</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#HOST">HOST</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_MATCH">IF_MATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_MODIFIED_SINCE">IF_MODIFIED_SINCE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_NONE_MATCH">IF_NONE_MATCH</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IF_UNMODIFIED_SINCE">IF_UNMODIFIED_SINCE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LAST_EVENT_ID_HEADER">LAST_EVENT_ID_HEADER</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>"Last-Event-ID"</code> HTTP request header name as defined by
+ <a href="http://www.w3.org/TR/eventsource/#last-event-id">SSE specification</a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LAST_MODIFIED">LAST_MODIFIED</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LINK">LINK</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc5988#page-6">Web Linking (IETF RFC-5988) documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#LOCATION">LOCATION</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RETRY_AFTER">RETRY_AFTER</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SET_COOKIE">SET_COOKIE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#USER_AGENT">USER_AGENT</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#VARY">VARY</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WWW_AUTHENTICATE">WWW_AUTHENTICATE</a></span></code></th>
+<td class="colLast">
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableLanguages()">getAcceptableLanguages</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of languages that are acceptable for the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a HTTP header as a single string value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the request entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the request entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestHeader(java.lang.String)">getRequestHeader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get the values of a HTTP request header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestHeaders()">getRequestHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of HTTP request headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="ACCEPT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.ACCEPT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ACCEPT_CHARSET">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT_CHARSET</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT_CHARSET</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.ACCEPT_CHARSET">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ACCEPT_ENCODING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT_ENCODING</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT_ENCODING</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.ACCEPT_ENCODING">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ACCEPT_LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPT_LANGUAGE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ACCEPT_LANGUAGE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.ACCEPT_LANGUAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ALLOW">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ALLOW</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ALLOW</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.ALLOW">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="AUTHORIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>AUTHORIZATION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> AUTHORIZATION</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.AUTHORIZATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CACHE_CONTROL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CACHE_CONTROL</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CACHE_CONTROL</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CACHE_CONTROL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_DISPOSITION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_DISPOSITION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_DISPOSITION</pre>
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc2183">IETF RFC-2183</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_ENCODING">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_ENCODING</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_ENCODING</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_ENCODING">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_ID">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_ID</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_ID</pre>
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc2392">IETF RFC-2392</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_ID">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_LANGUAGE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_LANGUAGE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_LANGUAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_LENGTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_LENGTH</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_LOCATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_LOCATION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_LOCATION</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_LOCATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CONTENT_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONTENT_TYPE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CONTENT_TYPE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.CONTENT_TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DATE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.DATE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="ETAG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ETAG</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> ETAG</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.ETAG">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="EXPIRES">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXPIRES</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> EXPIRES</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.EXPIRES">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="HOST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HOST</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> HOST</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.HOST">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_MATCH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_MATCH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_MATCH</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.IF_MATCH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_MODIFIED_SINCE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_MODIFIED_SINCE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_MODIFIED_SINCE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.IF_MODIFIED_SINCE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_NONE_MATCH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_NONE_MATCH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_NONE_MATCH</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.IF_NONE_MATCH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="IF_UNMODIFIED_SINCE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>IF_UNMODIFIED_SINCE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> IF_UNMODIFIED_SINCE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.IF_UNMODIFIED_SINCE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LAST_MODIFIED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LAST_MODIFIED</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LAST_MODIFIED</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.LAST_MODIFIED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LOCATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LOCATION</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LOCATION</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.LOCATION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LINK">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LINK</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LINK</pre>
+<div class="block">See {@link <a href="http://tools.ietf.org/html/rfc5988#page-6">Web Linking (IETF RFC-5988) documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.LINK">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="RETRY_AFTER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RETRY_AFTER</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> RETRY_AFTER</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.RETRY_AFTER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="USER_AGENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USER_AGENT</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> USER_AGENT</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.USER_AGENT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="VARY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VARY</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> VARY</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.VARY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WWW_AUTHENTICATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WWW_AUTHENTICATE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> WWW_AUTHENTICATE</pre>
+<div class="block">See {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.WWW_AUTHENTICATE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="COOKIE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COOKIE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> COOKIE</pre>
+<div class="block">See {@link <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.COOKIE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SET_COOKIE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SET_COOKIE</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> SET_COOKIE</pre>
+<div class="block">See {@link <a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a>}.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.SET_COOKIE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="LAST_EVENT_ID_HEADER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LAST_EVENT_ID_HEADER</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> LAST_EVENT_ID_HEADER</pre>
+<div class="block"><code>"Last-Event-ID"</code> HTTP request header name as defined by
+ <a href="http://www.w3.org/TR/eventsource/#last-event-id">SSE specification</a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.HttpHeaders.LAST_EVENT_ID_HEADER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getRequestHeader(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestHeader</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;&nbsp;getRequestHeader&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get the values of a HTTP request header. The returned List is read-only.
+ This is a shortcut for <code>getRequestHeaders().get(name)</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the header name, case insensitive.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of header values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a HTTP header as a single string value.
+ <p/>
+ Each single header value is converted to String using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available
+ via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a>
+ for the header value class or using its <code>toString</code> method  if a header
+ delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the HTTP header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the HTTP header value. If the HTTP header is not present then
+         <code>null</code> is returned. If the HTTP header is present but has no
+         value then the empty string is returned. If the HTTP header is present
+         more than once then the values of joined together and separated by a ','
+         character.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getRequestHeader(java.lang.String)"><code>getRequestHeader(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestHeaders</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getRequestHeaders()</pre>
+<div class="block">Get the values of HTTP request headers. The returned Map is case-insensitive
+ wrt. keys and is read-only. The method never returns <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of header names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableMediaTypes()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableMediaTypes</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;&nbsp;getAcceptableMediaTypes()</pre>
+<div class="block">Get a list of media types that are acceptable for the response.
+ <p/>
+ If no acceptable media types are specified, a read-only list containing
+ a single <a href="MediaType.html#WILDCARD_TYPE"><code>wildcard media type</code></a>
+ instance is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of requested response media types sorted according
+         to their q-value, with highest preference first.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAcceptableLanguages()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAcceptableLanguages</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&gt;&nbsp;getAcceptableLanguages()</pre>
+<div class="block">Get a list of languages that are acceptable for the response.
+ <p/>
+ If no acceptable languages are specified, a read-only list containing
+ a single wildcard <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Locale</code></a> instance (with language field
+ set to "<code>*</code>") is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of acceptable languages sorted according
+         to their q-value, with highest preference first.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the request entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if there is no request entity.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the request entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or <code>null</code> if not specified.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any cookies that accompanied the request.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to Cookie.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other
+         cases returns -1.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/HttpHeaders.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Link.Builder.html b/apidocs/2.1.6/javax/ws/rs/core/Link.Builder.html
new file mode 100644
index 0000000..2ae5143
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Link.Builder.html
@@ -0,0 +1,588 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Link.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface Link.Builder" class="title">Interface Link.Builder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Link.html" title="class in javax.ws.rs.core">Link</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Link.Builder</span></pre>
+<div class="block">Builder class for hypermedia links.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#baseUri(java.lang.String)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI as a string for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#baseUri(java.net.URI)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildRelativized(java.net.URI,java.lang.Object...)">buildRelativized</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters
+ and relativize the result with respect to the supplied URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link represented as a string.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(javax.ws.rs.core.Link)">link</a></span>&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set an arbitrary parameter on this link.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rel(java.lang.String)">rel</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a link relation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#title(java.lang.String)">title</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;title)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uriBuilder(javax.ws.rs.core.UriBuilder)">uriBuilder</a></span>&#8203;(<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="link(javax.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;link&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Initialize builder using another link. Sets underlying URI and copies
+ all parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - other link from which to initialize.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="link(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;link&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;link)</pre>
+<div class="block">Initialize builder using another link represented as a string. Uses
+ simple parser to convert string representation into a link.
+ <pre>
+ link ::= '<' uri '>' (';' link-param)*
+ link-param ::= name '=' quoted-string
+ </pre>
+
+ See <a href="http://tools.ietf.org/html/rfc5988">RFC 5988</a> for more information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - other link in string representation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if string representation of URI is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Set underlying URI template for the link being constructed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if string representation of URI is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="baseUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>baseUri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;baseUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Set the base URI for resolution of relative URIs. If the underlying URI is already
+ absolute, the base URI is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - base URI for relative links.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.html#fromPath(java.lang.String)"><code>Link.fromPath(java.lang.String)</code></a>, 
+<a href="Link.html#fromResource(java.lang.Class)"><code>Link.fromResource(java.lang.Class)</code></a>, 
+<a href="Link.html#fromMethod(java.lang.Class,java.lang.String)"><code>Link.fromMethod(java.lang.Class, java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="baseUri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>baseUri</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;baseUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Set the base URI as a string for resolution of relative URIs. If the underlying URI
+ is already absolute, the base URI is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - base URI for relative links.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if string representation of URI is invalid.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.html#fromPath(java.lang.String)"><code>Link.fromPath(java.lang.String)</code></a>, 
+<a href="Link.html#fromResource(java.lang.Class)"><code>Link.fromResource(java.lang.Class)</code></a>, 
+<a href="Link.html#fromMethod(java.lang.Class,java.lang.String)"><code>Link.fromMethod(java.lang.Class, java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="uriBuilder(javax.ws.rs.core.UriBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uriBuilder</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;uriBuilder&#8203;(<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</pre>
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriBuilder</code> - underlying URI builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="rel(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rel</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;rel&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</pre>
+<div class="block">Convenience method to set a link relation. More than one <code>rel</code> value can
+ be specified by using one or more whitespace characters as delimiters
+ according to RFC 5988. The effect of calling this method is cumulative;
+ relations are appended using a single space character as separator.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rel</code> - relation name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="title(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>title</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;title&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;title)</pre>
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>title</code> - title parameter of this link.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the title is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="type(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;type&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - type parameter of this link.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the type is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="param(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>param</h4>
+<pre class="methodSignature"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;param&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Set an arbitrary parameter on this link. Note that link parameters are those
+ defined in RFC 5988 and should not be confused with URI parameters which can
+ be specified when calling <a href="#build(java.lang.Object...)"><code>build(Object...)</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the parameter.</dd>
+<dd><code>value</code> - the value set for the parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if either the name or value are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Finish building this link using the supplied values as URI parameters.
+
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - parameters used to build underlying URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly built link.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the underlying URI builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="buildRelativized(java.net.URI,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>buildRelativized</h4>
+<pre class="methodSignature"><a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;buildRelativized&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Finish building this link using the supplied values as URI parameters
+ and relativize the result with respect to the supplied URI.
+
+ If the underlying link is already relative or if it is absolute but does
+ not share a prefix with the supplied URI, this method is equivalent to calling
+ <a href="#build(java.lang.Object...)"><code>build(java.lang.Object[])</code></a>. Note that a base URI can
+ be set on a relative link using <a href="#baseUri(java.net.URI)"><code>baseUri(java.net.URI)</code></a>.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - URI used for relativization.</dd>
+<dd><code>values</code> - parameters used to build underlying URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly built link.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the current
+                                  state of the underlying URI builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#baseUri(java.lang.String)"><code>baseUri(java.lang.String)</code></a>, 
+<a href="#baseUri(java.net.URI)"><code>baseUri(java.net.URI)</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Link.JaxbAdapter.html b/apidocs/2.1.6/javax/ws/rs/core/Link.JaxbAdapter.html
new file mode 100644
index 0000000..990b1d2
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Link.JaxbAdapter.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Link.JaxbAdapter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link.JaxbAdapter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbAdapter.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Link.JaxbAdapter" class="title">Class Link.JaxbAdapter</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink">javax.xml.bind.annotation.adapters.XmlAdapter</a>&lt;<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Link.JaxbAdapter</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Link.html" title="class in javax.ws.rs.core">Link</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">Link.JaxbAdapter</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink">XmlAdapter</a>&lt;<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</pre>
+<div class="block">An implementation of JAXB <a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><code>XmlAdapter</code></a>
+ that maps the <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> type to a value that can be
+ marshalled and unmarshalled by JAXB. The following example shows how to use
+ this adapter on a JAXB bean class:
+
+ <pre>
+ &#64;XmlRootElement
+ public class MyModel {
+
+   private Link link;
+
+   &#64;XmlElement(name="link")
+   &#64;XmlJavaTypeAdapter(JaxbAdapter.class)
+   public Link getLink() {
+     return link;
+   }
+   ...
+ }
+ </pre></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">JaxbAdapter</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#marshal(javax.ws.rs.core.Link)">marshal</a></span>&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> into a <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#unmarshal(javax.ws.rs.core.Link.JaxbLink)">unmarshal</a></span>&#8203;(<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JaxbAdapter</h4>
+<pre>public&nbsp;JaxbAdapter()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="unmarshal(javax.ws.rs.core.Link.JaxbLink)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unmarshal</h4>
+<pre class="methodSignature">public&nbsp;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;unmarshal&#8203;(<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</pre>
+<div class="block">Convert a <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true#unmarshal(ValueType)" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink">unmarshal</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink">XmlAdapter</a>&lt;<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - instance of type <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mapped instance of type <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="marshal(javax.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>marshal</h4>
+<pre class="methodSignature">public&nbsp;<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>&nbsp;marshal&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;v)</pre>
+<div class="block">Convert a <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> into a <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true#marshal(BoundType)" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink">marshal</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink">XmlAdapter</a>&lt;<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>,&#8203;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>v</code> - instance of type <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>mapped instance of type <a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbAdapter.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Link.JaxbLink.html b/apidocs/2.1.6/javax/ws/rs/core/Link.JaxbLink.html
new file mode 100644
index 0000000..03a677d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Link.JaxbLink.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Link.JaxbLink (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link.JaxbLink (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbLink.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Link.JaxbLink" class="title">Class Link.JaxbLink</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Link.JaxbLink</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Link.html" title="class in javax.ws.rs.core">Link</a></dd>
+</dl>
+<hr>
+<pre>public static class <span class="typeNameLabel">Link.JaxbLink</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Value type for <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.JaxbAdapter.html" title="class in javax.ws.rs.core"><code>Link.JaxbAdapter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">JaxbLink</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Default constructor needed during unmarshalling.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URI)">JaxbLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Construct an instance from a URI and no parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.net.URI,java.util.Map)">JaxbLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;params)</code></th>
+<td class="colLast">
+<div class="block">Construct an instance from a URI and some parameters.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParams()">getParams</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the parameter map for this link.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the underlying URI for this link.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>JaxbLink</h4>
+<pre>public&nbsp;JaxbLink()</pre>
+<div class="block">Default constructor needed during unmarshalling.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>JaxbLink</h4>
+<pre>public&nbsp;JaxbLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Construct an instance from a URI and no parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.net.URI,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JaxbLink</h4>
+<pre>public&nbsp;JaxbLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;params)</pre>
+<div class="block">Construct an instance from a URI and some parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI.</dd>
+<dd><code>params</code> - parameters of this link.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Get the underlying URI for this link.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParams()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParams</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/namespace/QName.html?is-external=true" title="class or interface in javax.xml.namespace" class="externalLink">QName</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getParams()</pre>
+<div class="block">Get the parameter map for this link.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>parameter map.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.JaxbLink.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Link.html b/apidocs/2.1.6/javax/ws/rs/core/Link.html
new file mode 100644
index 0000000..d90170e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Link.html
@@ -0,0 +1,844 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Link (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Link (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Link" class="title">Class Link</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Link</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Link</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block"><p>Class representing hypermedia links. A hypermedia link may include additional
+ parameters beyond its underlying URI. Parameters such as <code>rel</code> or <code>type</code>
+ provide additional meta-data. Links in responses can be <em>followed</em> by
+ creating an <a href="../client/Invocation.Builder.html" title="interface in javax.ws.rs.client"><code>Invocation.Builder</code></a> or a
+ <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>WebTarget</code></a>.</p>
+
+ <p>The methods <a href="#toString()"><code>toString()</code></a> and <a href="#valueOf(java.lang.String)"><code>valueOf(java.lang.String)</code></a> can be used to serialize
+ and de-serialize a link into a link header (RFC 5988).</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar, Santiago Pericas-Geertsen</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../client/Client.html#invocation(javax.ws.rs.core.Link)"><code>Client.invocation(javax.ws.rs.core.Link)</code></a>, 
+<a href="../client/Client.html#target(javax.ws.rs.core.Link)"><code>Client.target(javax.ws.rs.core.Link)</code></a>, 
+<a href="Response.html#getLink(java.lang.String)"><code>Response.getLink(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Link.JaxbAdapter</a></span></code></th>
+<td class="colLast">
+<div class="block">An implementation of JAXB <a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><code>XmlAdapter</code></a>
+ that maps the <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> type to a value that can be
+ marshalled and unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></span></code></th>
+<td class="colLast">
+<div class="block">Value type for <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#REL">REL</a></span></code></th>
+<td class="colLast">
+<div class="block">Rel link param from RFC 5988.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TITLE">TITLE</a></span></code></th>
+<td class="colLast">
+<div class="block">Title link param from RFC 5988.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TYPE">TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Type link param from RFC 5988.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Link</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromLink(javax.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from another link.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a path.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>static <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUriBuilder(javax.ws.rs.core.UriBuilder)">fromUriBuilder</a></span>&#8203;(<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParams()">getParams</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable map that includes all the link parameters
+ defined on this link.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRel()">getRel</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>rel</code> param, or
+ <code>null</code> if this param is not specified.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRels()">getRels</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>rel</code> param as a list
+ of strings or the empty list if <code>rel</code> is not defined.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTitle()">getTitle</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>title</code> param, or
+ <code>null</code> if this param is not specified.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the value associated with the link <code>type</code> param, or
+ <code>null</code> if this param is not specified.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUri()">getUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the underlying URI associated with this link.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>
+ initialized with this link's underlying URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a string representation as a link header (RFC 5988).</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>static <a href="Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Simple parser to convert link header string representations into a link.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="TITLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TITLE</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TITLE</pre>
+<div class="block">Title link param from RFC 5988.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.Link.TITLE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="REL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REL</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> REL</pre>
+<div class="block">Rel link param from RFC 5988.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.Link.REL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TYPE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TYPE</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TYPE</pre>
+<div class="block">Type link param from RFC 5988.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.Link.TYPE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Link</h4>
+<pre>public&nbsp;Link()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUri</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getUri()</pre>
+<div class="block">Returns the underlying URI associated with this link.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUriBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;getUriBuilder()</pre>
+<div class="block">Convenience method that returns a <a href="UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>
+ initialized with this link's underlying URI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>UriBuilder initialized using underlying URI.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRel()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRel</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getRel()</pre>
+<div class="block">Returns the value associated with the link <code>rel</code> param, or
+ <code>null</code> if this param is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>relation types as string or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getRels()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRels</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;&nbsp;getRels()</pre>
+<div class="block">Returns the value associated with the link <code>rel</code> param as a list
+ of strings or the empty list if <code>rel</code> is not defined.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>relation types as list of strings or empty list.</dd>
+</dl>
+</li>
+</ul>
+<a id="getTitle()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTitle</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getTitle()</pre>
+<div class="block">Returns the value associated with the link <code>title</code> param, or
+ <code>null</code> if this param is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of title parameter or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getType()</pre>
+<div class="block">Returns the value associated with the link <code>type</code> param, or
+ <code>null</code> if this param is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of type parameter or <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParams()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParams</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getParams()</pre>
+<div class="block">Returns an immutable map that includes all the link parameters
+ defined on this link. If defined, this map will include entries
+ for <code>rel</code>, <code>title</code> and <code>type</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>immutable map of link parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Returns a string representation as a link header (RFC 5988).
+ All link params are serialized as link-param="value" where value
+ is a quoted-string. For example,
+
+ <http://foo.bar/employee/john>; title="employee"; rel="manager friend"</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>string link header representation for this link.</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Simple parser to convert link header string representations into a link.
+ <pre>
+ link ::= '<' uri '>' (';' link-param)*
+ link-param ::= name '=' quoted-string
+ </pre>
+
+ See <a href="http://tools.ietf.org/html/rfc5988">RFC 5988</a> for more information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - String representation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly parsed link.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if a syntax error is found.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Link.Builder.html#link(java.lang.String)"><code>Link.Builder.link(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - a URI that will be used to initialize the builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if uri is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</pre>
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - a URI that will be used to initialize the builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if uri is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUriBuilder(javax.ws.rs.core.UriBuilder)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUriBuilder</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromUriBuilder&#8203;(<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</pre>
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriBuilder</code> - instance of URI builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromLink(javax.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromLink</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromLink&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Create a new builder instance initialized from another link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - other link used for initialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromPath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromPath</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromPath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Convenience method to build a link from a path. Equivalent to
+ <code>fromUriBuilder(UriBuilder.fromPath(path))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - a URI path that will be used to initialize the Link, may contain
+             URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new Link.Builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromResource(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromResource</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</pre>
+<div class="block">Convenience method to build a link from a resource. Equivalent to
+ <code>Link.fromUriBuilder({@link UriBuilder#fromResource UriBuilder.fromResource(resource)})</code>.
+ Note that the link URI passed to the <code>Link.Builder</code> instance returned by this
+ method is relative. Should the link be built as absolute, a <a href="Link.Builder.html#baseUri(java.net.URI)"><code>base URI</code></a> has to be specified in the builder prior to building the new link instance.
+ For example, on a server side a <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a> may be typically used to define
+ the base URI of a link created using this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - a root resource whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be used
+                 to initialize the builder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new <a href="Link.Builder.html" title="interface in javax.ws.rs.core"><code>link builder</code></a> instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource is not annotated with <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>
+                                  or resource is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="fromMethod(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromMethod</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;fromMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Convenience method to build a link from a resource. Equivalent to
+ <code>Link.fromUriBuilder({@link UriBuilder#fromMethod(Class, String) UriBuilder.fromMethod(resource, method)})</code>.
+ Note that the link URI passed to the <code>Link.Builder</code> instance returned by this
+ method is relative. Should the link be built as absolute, a <a href="Link.Builder.html#baseUri(java.net.URI)"><code>base URI</code></a> has to be specified in the builder prior to building the new link instance.
+ For example, on a server side a <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a> may be typically used to define
+ the base URI of a link created using this method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the resource containing the method.</dd>
+<dd><code>method</code> - the name of the method whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be used
+                 to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated Link.Builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource or method is <code>null</code>, or there is more
+                                  than or less than one variant of the method annotated with
+                                  <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Link.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/MediaType.html b/apidocs/2.1.6/javax/ws/rs/core/MediaType.html
new file mode 100644
index 0000000..b48cbac
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/MediaType.html
@@ -0,0 +1,1255 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>MediaType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MediaType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MediaType.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class MediaType" class="title">Class MediaType</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.MediaType</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">MediaType</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">An abstraction for a media type. Instances are immutable.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">HTTP/1.1 section 3.7</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_ATOM_XML">APPLICATION_ATOM_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/atom+xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_ATOM_XML_TYPE">APPLICATION_ATOM_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_FORM_URLENCODED">APPLICATION_FORM_URLENCODED</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/x-www-form-urlencoded" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_FORM_URLENCODED_TYPE">APPLICATION_FORM_URLENCODED_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON">APPLICATION_JSON</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/json" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON_PATCH_JSON">APPLICATION_JSON_PATCH_JSON</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of "application/json-patch+json" media type..</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON_PATCH_JSON_TYPE">APPLICATION_JSON_PATCH_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_JSON_TYPE">APPLICATION_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON">"application/json"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_OCTET_STREAM">APPLICATION_OCTET_STREAM</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/octet-stream" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_OCTET_STREAM_TYPE">APPLICATION_OCTET_STREAM_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_SVG_XML">APPLICATION_SVG_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/svg+xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_SVG_XML_TYPE">APPLICATION_SVG_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XHTML_XML">APPLICATION_XHTML_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/xhtml+xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XHTML_XML_TYPE">APPLICATION_XHTML_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XML">APPLICATION_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "application/xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#APPLICATION_XML_TYPE">APPLICATION_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XML">"application/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CHARSET_PARAMETER">CHARSET_PARAMETER</a></span></code></th>
+<td class="colLast">
+<div class="block">The media type <code>charset</code> parameter name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEDIA_TYPE_WILDCARD">MEDIA_TYPE_WILDCARD</a></span></code></th>
+<td class="colLast">
+<div class="block">The value of a type or subtype wildcard "*".</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MULTIPART_FORM_DATA">MULTIPART_FORM_DATA</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "multipart/form-data" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MULTIPART_FORM_DATA_TYPE">MULTIPART_FORM_DATA_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SERVER_SENT_EVENTS">SERVER_SENT_EVENTS</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of Server sent events media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SERVER_SENT_EVENTS_TYPE">SERVER_SENT_EVENTS_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Server sent events media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_HTML">TEXT_HTML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "text/html" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_HTML_TYPE">TEXT_HTML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_HTML">"text/html"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_PLAIN">TEXT_PLAIN</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "text/plain" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_PLAIN_TYPE">TEXT_PLAIN_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_XML">TEXT_XML</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing "text/xml" media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#TEXT_XML_TYPE">TEXT_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_XML">"text/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WILDCARD">WILDCARD</a></span></code></th>
+<td class="colLast">
+<div class="block">A <code>String</code> constant representing wildcard "*/*" media type .</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#WILDCARD_TYPE">WILDCARD_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="#WILDCARD">"*/*"</a> media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code>, both type and subtype are wildcards.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">MediaType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type and subtype.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)">MediaType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and
+ <a href="#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)">MediaType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;parameters)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and
+ parameters.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares <code>obj</code> to this media type to see if they are the same by comparing
+ type, subtype and parameters.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameters()">getParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Getter for a read-only parameter map.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSubtype()">getSubtype</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Getter for subtype.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Getter for primary type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate a hash code from the type, subtype and parameters.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCompatible(javax.ws.rs.core.MediaType)">isCompatible</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;other)</code></th>
+<td class="colLast">
+<div class="block">Check if this media type is compatible with another media type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWildcardSubtype()">isWildcardSubtype</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the subtype is a wildcard.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWildcardType()">isWildcardType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Checks if the primary type is a wildcard.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the media type to a string suitable for use as the value of a
+ corresponding HTTP header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>static <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withCharset(java.lang.String)">withCharset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters
+ copied from the original instance and the supplied <a href="#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="CHARSET_PARAMETER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CHARSET_PARAMETER</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CHARSET_PARAMETER</pre>
+<div class="block">The media type <code>charset</code> parameter name.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.CHARSET_PARAMETER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MEDIA_TYPE_WILDCARD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MEDIA_TYPE_WILDCARD</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> MEDIA_TYPE_WILDCARD</pre>
+<div class="block">The value of a type or subtype wildcard "*".</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.MEDIA_TYPE_WILDCARD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WILDCARD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WILDCARD</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> WILDCARD</pre>
+<div class="block">A <code>String</code> constant representing wildcard "*/*" media type .</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.WILDCARD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="WILDCARD_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WILDCARD_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> WILDCARD_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="#WILDCARD">"*/*"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XML">"application/xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_ATOM_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_ATOM_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_ATOM_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/atom+xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_ATOM_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_ATOM_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_ATOM_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_ATOM_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_XHTML_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XHTML_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_XHTML_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/xhtml+xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_XHTML_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_XHTML_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_XHTML_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_XHTML_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_SVG_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_SVG_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_SVG_XML</pre>
+<div class="block">A <code>String</code> constant representing "application/svg+xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_SVG_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_SVG_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_SVG_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_SVG_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_JSON">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_JSON</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_JSON</pre>
+<div class="block">A <code>String</code> constant representing "application/json" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_JSON">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_JSON_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_JSON_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_JSON_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON">"application/json"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_FORM_URLENCODED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_FORM_URLENCODED</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_FORM_URLENCODED</pre>
+<div class="block">A <code>String</code> constant representing "application/x-www-form-urlencoded" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_FORM_URLENCODED_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_FORM_URLENCODED_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_FORM_URLENCODED_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</li>
+</ul>
+<a id="MULTIPART_FORM_DATA">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTIPART_FORM_DATA</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> MULTIPART_FORM_DATA</pre>
+<div class="block">A <code>String</code> constant representing "multipart/form-data" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.MULTIPART_FORM_DATA">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="MULTIPART_FORM_DATA_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTIPART_FORM_DATA_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> MULTIPART_FORM_DATA_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_OCTET_STREAM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_OCTET_STREAM</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_OCTET_STREAM</pre>
+<div class="block">A <code>String</code> constant representing "application/octet-stream" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_OCTET_STREAM_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_OCTET_STREAM_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_OCTET_STREAM_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</li>
+</ul>
+<a id="TEXT_PLAIN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_PLAIN</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TEXT_PLAIN</pre>
+<div class="block">A <code>String</code> constant representing "text/plain" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.TEXT_PLAIN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_PLAIN_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_PLAIN_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> TEXT_PLAIN_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</li>
+</ul>
+<a id="TEXT_XML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_XML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TEXT_XML</pre>
+<div class="block">A <code>String</code> constant representing "text/xml" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.TEXT_XML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_XML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_XML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> TEXT_XML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_XML">"text/xml"</a> media type.</div>
+</li>
+</ul>
+<a id="TEXT_HTML">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_HTML</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> TEXT_HTML</pre>
+<div class="block">A <code>String</code> constant representing "text/html" media type.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.TEXT_HTML">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="TEXT_HTML_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT_HTML_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> TEXT_HTML_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#TEXT_HTML">"text/html"</a> media type.</div>
+</li>
+</ul>
+<a id="SERVER_SENT_EVENTS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_SENT_EVENTS</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> SERVER_SENT_EVENTS</pre>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of Server sent events media type. (""text/event-stream"").</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.SERVER_SENT_EVENTS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="SERVER_SENT_EVENTS_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_SENT_EVENTS_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> SERVER_SENT_EVENTS_TYPE</pre>
+<div class="block">Server sent events media type.</div>
+</li>
+</ul>
+<a id="APPLICATION_JSON_PATCH_JSON">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>APPLICATION_JSON_PATCH_JSON</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> APPLICATION_JSON_PATCH_JSON</pre>
+<div class="block"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> representation of "application/json-patch+json" media type..</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.MediaType.APPLICATION_JSON_PATCH_JSON">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="APPLICATION_JSON_PATCH_JSON_TYPE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>APPLICATION_JSON_PATCH_JSON_TYPE</h4>
+<pre>public static final&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a> APPLICATION_JSON_PATCH_JSON_TYPE</pre>
+<div class="block">A <a href="MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and
+ parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the primary type, <code>null</code> is equivalent to
+                   <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a>.</dd>
+<dd><code>subtype</code> - the subtype, <code>null</code> is equivalent to
+                   <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a>.</dd>
+<dd><code>parameters</code> - a map of media type parameters, <code>null</code> is the same as an
+                   empty map.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type and subtype.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the primary type, <code>null</code> is equivalent to
+                <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+<dd><code>subtype</code> - the subtype, <code>null</code> is equivalent to
+                <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;subtype,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> with the supplied type, subtype and
+ <a href="#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the primary type, <code>null</code> is equivalent to
+                <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+<dd><code>subtype</code> - the subtype, <code>null</code> is equivalent to
+                <a href="#MEDIA_TYPE_WILDCARD"><code>MEDIA_TYPE_WILDCARD</code></a></dd>
+<dd><code>charset</code> - the <a href="#CHARSET_PARAMETER">"charset"</a> parameter value. If <code>null</code> or empty
+                the <a href="#CHARSET_PARAMETER">"charset"</a> parameter will not be set.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MediaType</h4>
+<pre>public&nbsp;MediaType()</pre>
+<div class="block">Creates a new instance of <code>MediaType</code>, both type and subtype are wildcards.
+ Consider using the constant <a href="#WILDCARD_TYPE"><code>WILDCARD_TYPE</code></a> instead.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the media type string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created MediaType.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed
+                                  or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getType()</pre>
+<div class="block">Getter for primary type.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of primary type.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWildcardType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWildcardType</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWildcardType()</pre>
+<div class="block">Checks if the primary type is a wildcard.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the primary type is a wildcard.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSubtype()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSubtype</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getSubtype()</pre>
+<div class="block">Getter for subtype.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>value of subtype.</dd>
+</dl>
+</li>
+</ul>
+<a id="isWildcardSubtype()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWildcardSubtype</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isWildcardSubtype()</pre>
+<div class="block">Checks if the subtype is a wildcard.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the subtype is a wildcard.</dd>
+</dl>
+</li>
+</ul>
+<a id="getParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Getter for a read-only parameter map. Keys are case-insensitive.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable map of parameters.</dd>
+</dl>
+</li>
+</ul>
+<a id="withCharset(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>withCharset</h4>
+<pre class="methodSignature">public&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;withCharset&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</pre>
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters
+ copied from the original instance and the supplied <a href="#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>charset</code> - the <a href="#CHARSET_PARAMETER">"charset"</a> parameter value. If <code>null</code> or empty
+                the <a href="#CHARSET_PARAMETER">"charset"</a> parameter will not be set or updated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>copy of the current <code>MediaType</code> instance with the <a href="#CHARSET_PARAMETER">"charset"</a>
+         parameter set to the supplied value.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="isCompatible(javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isCompatible</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isCompatible&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;other)</pre>
+<div class="block">Check if this media type is compatible with another media type. E.g.
+ image/* is compatible with image/jpeg, image/png, etc. Media type
+ parameters are ignored. The function is commutative.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>other</code> - the media type to compare with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the types are compatible, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares <code>obj</code> to this media type to see if they are the same by comparing
+ type, subtype and parameters. Note that the case-sensitivity of parameter
+ values is dependent on the semantics of the parameter name, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">HTTP/1.1</a>}.
+ This method assumes that values are case-sensitive.
+ <p/>
+ Note that the <code>equals(...)</code> implementation does not perform
+ a class equality check (<code>this.getClass() == obj.getClass()</code>). Therefore
+ any class that extends from <code>MediaType</code> class and needs to override
+ one of the <code>equals(...)</code> and <a href="#hashCode()"><code>hashCode()</code></a> methods must
+ always override both methods to ensure the contract between
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink"><code>Object.equals(java.lang.Object)</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink"><code>Object.hashCode()</code></a> does
+ not break.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the two media types are the same, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate a hash code from the type, subtype and parameters.
+ <p/>
+ Note that the <a href="#equals(java.lang.Object)"><code>equals(java.lang.Object)</code></a> implementation does not perform
+ a class equality check (<code>this.getClass() == obj.getClass()</code>). Therefore
+ any class that extends from <code>MediaType</code> class and needs to override
+ one of the <a href="#equals(java.lang.Object)"><code>equals(Object)</code></a> and <code>hashCode()</code> methods must
+ always override both methods to ensure the contract between
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink"><code>Object.equals(java.lang.Object)</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink"><code>Object.hashCode()</code></a> does
+ not break.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a generated hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Convert the media type to a string suitable for use as the value of a
+ corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a string version of the media type.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MediaType.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/MultivaluedHashMap.html b/apidocs/2.1.6/javax/ws/rs/core/MultivaluedHashMap.html
new file mode 100644
index 0000000..f32986f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/MultivaluedHashMap.html
@@ -0,0 +1,487 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>MultivaluedHashMap (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedHashMap (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedHashMap.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class MultivaluedHashMap" class="title">Class MultivaluedHashMap&lt;K,&#8203;V&gt;</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">javax.ws.rs.core.AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.MultivaluedHashMap&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map.</dd>
+<dd><code>V</code> - the type of mapped values.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</code>, <code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">MultivaluedHashMap&lt;K,&#8203;V&gt;</span>
+extends <a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> interface.
+
+ This implementation provides all of the optional map operations. This class
+ makes no guarantees as to the order of the map; in particular, it does not
+ guarantee that the order will remain constant over time. The implementation
+ permits <code>null</code> key. By default the implementation does also permit
+ <code>null</code> values, but ignores them. This behavior can be customized
+ by overriding the protected <a href="AbstractMultivaluedMap.html#addNull(java.util.List)"><code>addNull(...)</code></a> and
+ <a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)"><code>addFirstNull(...)</code></a> methods.
+ <p/>
+ This implementation provides constant-time performance for the basic
+ operations (<code>get</code> and <code>put</code>), assuming the hash function
+ disperses the elements properly among the buckets. Iteration over
+ collection views requires time proportional to the "capacity" of the
+ map instance (the number of buckets) plus its size (the number
+ of key-value mappings).  Thus, it's very important not to set the initial
+ capacity too high (or the load factor too low) if iteration performance is
+ important.
+ <p/>
+ An instance of <code>MultivaluedHashMap</code> has two parameters that affect its
+ performance: <i>initial capacity</i> and <i>load factor</i>. The <i>capacity</i>
+ is the number of buckets in the hash table, and the initial capacity is simply
+ the capacity at the time the hash table is created. The <i>load factor</i> is
+ a measure of how full the hash table is allowed to get before its capacity is
+ automatically increased. When the number of entries in the hash table exceeds
+ the product of the load factor and the current capacity, the hash table is
+ <i>rehashed</i> (that is, internal data structures are rebuilt) so that the
+ hash table has approximately twice the number of buckets.
+ <p/>
+ As a general rule, the default load factor (.75) offers a good tradeoff
+ between time and space costs. Higher values decrease the space overhead
+ but increase the lookup cost (reflected in most of the operations of the
+ <code>HashMap</code> class, including <code>get</code> and <code>put</code>). The
+ expected number of entries in the map and its load factor should be taken
+ into account when setting its initial capacity, so as to minimize the
+ number of rehash operations. If the initial capacity is greater
+ than the maximum number of entries divided by the load factor, no
+ rehash operations will ever occur.
+ <p/>
+ If many mappings are to be stored in a <code>MultivaluedHashMap</code> instance,
+ creating it with a sufficiently large capacity will allow the mappings to
+ be stored more efficiently than letting it perform automatic rehashing as
+ needed to grow the table.
+ <p/>
+ <strong>Note that this implementation is not guaranteed to be synchronized.</strong>
+ If multiple threads access a hash map concurrently, and at least one of
+ the threads modifies the map structurally, it <i>must</i> be
+ synchronized externally. (A structural modification is any operation
+ that adds or deletes one or more mappings; merely changing the value
+ associated with a key that an instance already contains is not a
+ structural modification.) This is typically accomplished by
+ synchronizing on some object that naturally encapsulates the map.
+ <p/>
+ The iterators returned by all of this class's "collection view methods"
+ are <i>fail-fast</i>: if the map is structurally modified at any time after
+ the iterator is created, in any way except through the iterator's own
+ <code>remove</code> method, the iterator will throw a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ConcurrentModificationException.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>ConcurrentModificationException</code></a>.
+ Thus, in the face of concurrent modification, the iterator fails quickly and
+ cleanly, rather than risking arbitrary, non-deterministic behavior at an
+ undetermined time in the future.
+ <p/>
+ Note that the fail-fast behavior of an iterator cannot be guaranteed
+ as it is, generally speaking, impossible to make any hard guarantees in the
+ presence of unsynchronized concurrent modification. Fail-fast iterators
+ throw <code>ConcurrentModificationException</code> on a best-effort basis.
+ Therefore, it would be wrong to write a program that depended on this
+ exception for its correctness: <i>the fail-fast behavior of iterators
+ should be used only to detect bugs.</i></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#javax.ws.rs.core.MultivaluedHashMap">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">K</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">V</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.ws.rs.core.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;javax.ws.rs.core.<a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#store">store</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">MultivaluedHashMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity
+ (<code>16</code>) and the default load factor (<code>0.75</code>).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">MultivaluedHashMap</a></span>&#8203;(int&nbsp;initialCapacity)</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and the default load factor (<code>0.75</code>).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int,float)">MultivaluedHashMap</a></span>&#8203;(int&nbsp;initialCapacity,
+                  float&nbsp;loadFactor)</code></th>
+<td class="colLast">
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and load factor.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.util.Map)">MultivaluedHashMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified single-valued <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)">MultivaluedHashMap</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.AbstractMultivaluedMap">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.core.<a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></h3>
+<code><a href="AbstractMultivaluedMap.html#add(K,V)">add</a>, <a href="AbstractMultivaluedMap.html#addAll(K,java.util.List)">addAll</a>, <a href="AbstractMultivaluedMap.html#addAll(K,V...)">addAll</a>, <a href="AbstractMultivaluedMap.html#addFirst(K,V)">addFirst</a>, <a href="AbstractMultivaluedMap.html#addFirstNull(java.util.List)">addFirstNull</a>, <a href="AbstractMultivaluedMap.html#addNull(java.util.List)">addNull</a>, <a href="AbstractMultivaluedMap.html#clear()">clear</a>, <a href="AbstractMultivaluedMap.html#containsKey(java.lang.Object)">containsKey</a>, <a href="AbstractMultivaluedMap.html#containsValue(java.lang.Object)">containsValue</a>, <a href="AbstractMultivaluedMap.html#entrySet()">entrySet</a>, <a href="AbstractMultivaluedMap.html#equals(java.lang.Object)">equals</a>, <a href="AbstractMultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a>, <a href="AbstractMultivaluedMap.html#get(java.lang.Object)">get</a>, <a href="AbstractMultivaluedMap.html#getFirst(K)">getFirst</a>, <a href="AbstractMultivaluedMap.html#getValues(K)">getValues</a>, <a href="AbstractMultivaluedMap.html#hashCode()">hashCode</a>, <a href="AbstractMultivaluedMap.html#isEmpty()">isEmpty</a>, <a href="AbstractMultivaluedMap.html#keySet()">keySet</a>, <a href="AbstractMultivaluedMap.html#put(K,java.util.List)">put</a>, <a href="AbstractMultivaluedMap.html#putAll(java.util.Map)">putAll</a>, <a href="AbstractMultivaluedMap.html#putSingle(K,V)">putSingle</a>, <a href="AbstractMultivaluedMap.html#remove(java.lang.Object)">remove</a>, <a href="AbstractMultivaluedMap.html#size()">size</a>, <a href="AbstractMultivaluedMap.html#toString()">toString</a>, <a href="AbstractMultivaluedMap.html#values()">values</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#compute(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util" class="externalLink">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfPresent(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#forEach(java.util.function.BiConsumer)" title="class or interface in java.util" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#getOrDefault(java.lang.Object,V)" title="class or interface in java.util" class="externalLink">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#merge(K,V,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent(K,V)" title="class or interface in java.util" class="externalLink">putIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replaceAll(java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">replaceAll</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap()</pre>
+<div class="block">Constructs an empty multivalued hash map with the default initial capacity
+ (<code>16</code>) and the default load factor (<code>0.75</code>).</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(int&nbsp;initialCapacity)</pre>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and the default load factor (<code>0.75</code>).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialCapacity</code> - the initial capacity.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the initial capacity is negative.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(int,float)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(int&nbsp;initialCapacity,
+                          float&nbsp;loadFactor)</pre>
+<div class="block">Constructs an empty multivalued hash map with the specified initial
+ capacity and load factor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>initialCapacity</code> - the initial capacity</dd>
+<dd><code>loadFactor</code> - the load factor</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the initial capacity is negative
+                                  or the load factor is nonpositive</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</pre>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a>. The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> instances holding
+ the values of each key are created anew instead of being reused.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - the multivalued map whose mappings are to be placed in this
+            multivalued map.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the specified map is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultivaluedHashMap</h4>
+<pre>public&nbsp;MultivaluedHashMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</pre>
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified single-valued <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - the single-valued map whose mappings are to be placed in this
+            multivalued map.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the specified map is <code>null</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedHashMap.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/MultivaluedMap.html b/apidocs/2.1.6/javax/ws/rs/core/MultivaluedMap.html
new file mode 100644
index 0000000..d5cb2e4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/MultivaluedMap.html
@@ -0,0 +1,459 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>MultivaluedMap (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultivaluedMap (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedMap.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface MultivaluedMap" class="title">Interface MultivaluedMap&lt;K,&#8203;V&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>K</code> - the type of keys maintained by this map</dd>
+<dd><code>V</code> - the type of mapped values</dd>
+</dl>
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</code></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></code>, <code><a href="MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MultivaluedMap&lt;K,&#8203;V&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&gt;</pre>
+<div class="block">A map of key-values pairs. Each key can have zero or more values.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">Map.Entry</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">K</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util" class="externalLink">V</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(K,V)">add</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+   <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,java.util.List)">addAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</code></th>
+<td class="colLast">
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addAll(K,V...)">addAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+      <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</code></th>
+<td class="colLast">
+<div class="block">Add multiple values to the current list of values for the supplied key.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addFirst(K,V)">addFirst</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+        <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst(K)">getFirst</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</code></th>
+<td class="colLast">
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putSingle(K,V)">putSingle</a></span>&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+         <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.util.Map">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#clear()" title="class or interface in java.util" class="externalLink">clear</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#compute(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util" class="externalLink">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#computeIfPresent(K,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsKey(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsKey</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsValue(java.lang.Object)" title="class or interface in java.util" class="externalLink">containsValue</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#entrySet()" title="class or interface in java.util" class="externalLink">entrySet</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#forEach(java.util.function.BiConsumer)" title="class or interface in java.util" class="externalLink">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#get(java.lang.Object)" title="class or interface in java.util" class="externalLink">get</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#getOrDefault(java.lang.Object,V)" title="class or interface in java.util" class="externalLink">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#isEmpty()" title="class or interface in java.util" class="externalLink">isEmpty</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#keySet()" title="class or interface in java.util" class="externalLink">keySet</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#merge(K,V,java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#put(K,V)" title="class or interface in java.util" class="externalLink">put</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll(java.util.Map)" title="class or interface in java.util" class="externalLink">putAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent(K,V)" title="class or interface in java.util" class="externalLink">putIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="externalLink">remove</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace(K,V,V)" title="class or interface in java.util" class="externalLink">replace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replaceAll(java.util.function.BiFunction)" title="class or interface in java.util" class="externalLink">replaceAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#size()" title="class or interface in java.util" class="externalLink">size</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#values()" title="class or interface in java.util" class="externalLink">values</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="putSingle(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="putSingle(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putSingle</h4>
+<pre class="methodSignature">void&nbsp;putSingle&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+               <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Set the key's value to be a one item list consisting of the supplied value.
+ Any existing values will be replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the single value of the key</dd>
+</dl>
+</li>
+</ul>
+<a id="add(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="add(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">void&nbsp;add&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+         <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the current list of values for the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFirst(java.lang.Object)">
+<!--   -->
+</a><a id="getFirst(K)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFirst</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;getFirst&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</pre>
+<div class="block">A shortcut to get the first value of the supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the first value for the specified key or null if the key is
+         not in the map.</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.lang.Object[])">
+<!--   -->
+</a><a id="addAll(K,V...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">void&nbsp;addAll&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+            <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</pre>
+<div class="block">Add multiple values to the current list of values for the supplied key. If
+ the supplied array of new values is empty, method returns immediately.
+ Method throws a <code>NullPointerException</code> if the supplied array of values
+ is <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>newValues</code> - the values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied array of new values is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="addAll(java.lang.Object,java.util.List)">
+<!--   -->
+</a><a id="addAll(K,java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre class="methodSignature">void&nbsp;addAll&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
+<div class="block">Add all the values from the supplied value list to the current list of
+ values for the supplied key. If the supplied value list is empty, method
+ returns immediately. Method throws a <code>NullPointerException</code> if the
+ supplied array of values is <code>null</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key.</dd>
+<dd><code>valueList</code> - the list of values to be added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the supplied value list is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="addFirst(java.lang.Object,java.lang.Object)">
+<!--   -->
+</a><a id="addFirst(K,V)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFirst</h4>
+<pre class="methodSignature">void&nbsp;addFirst&#8203;(<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
+              <a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
+<div class="block">Add a value to the first position in the current list of values for the
+ supplied key.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - the key</dd>
+<dd><code>value</code> - the value to be added.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equalsIgnoreValueOrder</h4>
+<pre class="methodSignature">boolean&nbsp;equalsIgnoreValueOrder&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</pre>
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key. Specifically, the values associated with
+ each key are compared as if they were ordered lists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otherMap</code> - map to be compared to this one.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the maps are equal modulo value ordering.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultivaluedMap.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/NewCookie.html b/apidocs/2.1.6/javax/ws/rs/core/NewCookie.html
new file mode 100644
index 0000000..b06f025
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/NewCookie.html
@@ -0,0 +1,895 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NewCookie (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NewCookie (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NewCookie.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class NewCookie" class="title">Class NewCookie</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="Cookie.html" title="class in javax.ws.rs.core">javax.ws.rs.core.Cookie</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.NewCookie</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">NewCookie</span>
+extends <a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></pre>
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.ietf.org/rfc/rfc2109.txt">IETF RFC 2109</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_MAX_AGE">DEFAULT_MAX_AGE</a></span></code></th>
+<td class="colLast">
+<div class="block">Specifies that the cookie expires with the current application/browser session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.ws.rs.core.Cookie">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;javax.ws.rs.core.<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></h3>
+<code><a href="Cookie.html#DEFAULT_VERSION">DEFAULT_VERSION</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         int&nbsp;version,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         int&nbsp;version,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Cookie)">NewCookie</a></span>&#8203;(<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compare for equality.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComment()">getComment</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the comment associated with the cookie.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExpiry()">getExpiry</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the cookie expiry date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxAge()">getMaxAge</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the maximum age of the the cookie in seconds.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate a hash code by hashing all of the properties.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHttpOnly()">isHttpOnly</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns <code>true</code> if this cookie contains the <code>HttpOnly</code> attribute.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Whether the cookie will only be sent over a secure connection.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toCookie()">toCookie</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a new instance of a <a href="Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a> with the same name, value, path,
+ domain and version as this <code>NewCookie</code>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convert the cookie to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>static <a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of NewCookie by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.Cookie">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.ws.rs.core.<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></h3>
+<code><a href="Cookie.html#getDomain()">getDomain</a>, <a href="Cookie.html#getName()">getName</a>, <a href="Cookie.html#getPath()">getPath</a>, <a href="Cookie.html#getValue()">getValue</a>, <a href="Cookie.html#getVersion()">getVersion</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="DEFAULT_MAX_AGE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_MAX_AGE</h4>
+<pre>public static final&nbsp;int DEFAULT_MAX_AGE</pre>
+<div class="block">Specifies that the cookie expires with the current application/browser session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.NewCookie.DEFAULT_MAX_AGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure,
+                 boolean&nbsp;httpOnly)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie.</dd>
+<dd><code>value</code> - the value of the cookie.</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid.</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dd><code>httpOnly</code> - if <code>true</code> make the cookie HTTP only, i.e. only visible as part of an HTTP request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 int&nbsp;version,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie</dd>
+<dd><code>value</code> - the value of the cookie</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid</dd>
+<dd><code>version</code> - the version of the specification to which the cookie complies</dd>
+<dd><code>comment</code> - the comment</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;domain,
+                 int&nbsp;version,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+                 boolean&nbsp;secure,
+                 boolean&nbsp;httpOnly)</pre>
+<div class="block">Create a new instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the cookie</dd>
+<dd><code>value</code> - the value of the cookie</dd>
+<dd><code>path</code> - the URI path for which the cookie is valid</dd>
+<dd><code>domain</code> - the host domain for which the cookie is valid</dd>
+<dd><code>version</code> - the version of the specification to which the cookie complies</dd>
+<dd><code>comment</code> - the comment</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds</dd>
+<dd><code>expiry</code> - the cookie expiry date.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection</dd>
+<dd><code>httpOnly</code> - if <code>true</code> make the cookie HTTP only, i.e. only visible as part of an HTTP request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Cookie)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</pre>
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - the cookie to clone.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if cookie is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Cookie,java.lang.String,int,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 boolean&nbsp;secure)</pre>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - the cookie to clone.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if cookie is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NewCookie</h4>
+<pre>public&nbsp;NewCookie&#8203;(<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+                 int&nbsp;maxAge,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+                 boolean&nbsp;secure,
+                 boolean&nbsp;httpOnly)</pre>
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookie</code> - the cookie to clone.</dd>
+<dd><code>comment</code> - the comment.</dd>
+<dd><code>maxAge</code> - the maximum age of the cookie in seconds.</dd>
+<dd><code>expiry</code> - the cookie expiry date.</dd>
+<dd><code>secure</code> - specifies whether the cookie will only be sent over a secure connection.</dd>
+<dd><code>httpOnly</code> - if <code>true</code> make the cookie HTTP only, i.e. only visible as part of an HTTP request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if cookie is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Creates a new instance of NewCookie by parsing the supplied string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the cookie string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created <code>NewCookie</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be parsed
+                                  or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getComment()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComment</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getComment()</pre>
+<div class="block">Get the comment associated with the cookie.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the comment or null if none set</dd>
+</dl>
+</li>
+</ul>
+<a id="getMaxAge()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMaxAge</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getMaxAge()</pre>
+<div class="block">Get the maximum age of the the cookie in seconds. Cookies older than
+ the maximum age are discarded. A cookie can be unset by sending a new
+ cookie with maximum age of 0 since it will overwrite any existing cookie
+ and then be immediately discarded. The default value of <code>-1</code> indicates
+ that the cookie will be discarded at the end of the browser/application session.
+ <p>
+ Note that it is recommended to use <code>Max-Age</code> to control cookie
+ expiration, however some browsers do not understand <code>Max-Age</code>, in which case
+ setting <a href="#getExpiry()"><code>getExpiry()</code></a> Expires} parameter may be necessary.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the maximum age in seconds.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getExpiry()"><code>getExpiry()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getExpiry()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExpiry</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getExpiry()</pre>
+<div class="block">Get the cookie expiry date. Cookies whose expiry date has passed are discarded.
+ A cookie can be unset by setting a new cookie with an expiry date in the past,
+ typically the lowest possible date that can be set.
+ <p>
+ Note that it is recommended to use <a href="#getMaxAge()"><code>Max-Age</code></a> to control cookie
+ expiration, however some browsers do not understand <code>Max-Age</code>, in which case
+ setting <code>Expires</code> parameter may be necessary.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>cookie expiry date or <code>null</code> if no expiry date was set.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getMaxAge()"><code>getMaxAge()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isSecure()</pre>
+<div class="block">Whether the cookie will only be sent over a secure connection. Defaults
+ to <code>false</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the cookie will only be sent over a secure connection,
+         <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="isHttpOnly()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isHttpOnly</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;isHttpOnly()</pre>
+<div class="block">Returns <code>true</code> if this cookie contains the <code>HttpOnly</code> attribute.
+ This means that the cookie should not be accessible to scripting engines,
+ like javascript.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this cookie should be considered http only, <code>false</code>
+         otherwise.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="toCookie()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toCookie</h4>
+<pre class="methodSignature">public&nbsp;<a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;toCookie()</pre>
+<div class="block">Obtain a new instance of a <a href="Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a> with the same name, value, path,
+ domain and version as this <code>NewCookie</code>. This method can be used to
+ obtain an object that can be compared for equality with another <code>Cookie</code>;
+ since a <code>Cookie</code> will never compare equal to a <code>NewCookie</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <a href="Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Convert the cookie to a string suitable for use as the value of the
+ corresponding HTTP header.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Cookie.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a stringified cookie.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate a hash code by hashing all of the properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Cookie.html#hashCode()">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compare for equality. Use <a href="#toCookie()"><code>toCookie()</code></a> to compare a
+ <code>NewCookie</code> to a <code>Cookie</code> considering only the common
+ properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="Cookie.html#equals(java.lang.Object)">equals</a></code>&nbsp;in class&nbsp;<code><a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the object is a <code>NewCookie</code> with the same value for
+         all properties, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NewCookie.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/NoContentException.html b/apidocs/2.1.6/javax/ws/rs/core/NoContentException.html
new file mode 100644
index 0000000..ea473ea
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/NoContentException.html
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>NoContentException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NoContentException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoContentException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class NoContentException" class="title">Class NoContentException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">java.io.IOException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.NoContentException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">NoContentException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></pre>
+<div class="block">An I/O exception thrown by <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> implementations
+ when reading a zero-length message content to indicate that the message body reader
+ is not able to produce an instance representing an zero-length message content.
+ <p>
+ This exception, when thrown while reading a server request entity, is automatically
+ translated by the server runtime into a <a href="../BadRequestException.html" title="class in javax.ws.rs"><code>BadRequestException</code></a>
+ wrapping the original <code>NoContentException</code> and rethrown for a standard processing by
+ the registered <a href="../ext/ExceptionMapper.html" title="interface in javax.ws.rs.ext"><code>exception mappers</code></a>.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#javax.ws.rs.core.NoContentException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">NoContentException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">NoContentException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">NoContentException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NoContentException</h4>
+<pre>public&nbsp;NoContentException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</pre>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NoContentException</h4>
+<pre>public&nbsp;NoContentException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - the detail message (which is saved for later retrieval
+                by the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink"><code>Throwable.getMessage()</code></a> method).</dd>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NoContentException</h4>
+<pre>public&nbsp;NoContentException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Construct a new <code>NoContentException</code> instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the underlying cause of the exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NoContentException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/PathSegment.html b/apidocs/2.1.6/javax/ws/rs/core/PathSegment.html
new file mode 100644
index 0000000..ef837c5
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/PathSegment.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>PathSegment (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PathSegment (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathSegment.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface PathSegment" class="title">Interface PathSegment</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">PathSegment</span></pre>
+<div class="block">Represents a URI path segment and any associated matrix parameters. When an
+ instance of this type is injected with <a href="../PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, the
+ value of the annotation identifies which path segment is selected and the
+ presence of an <a href="../Encoded.html" title="annotation in javax.ws.rs"><code>Encoded</code></a> annotation will result in an
+ instance that supplies the path and matrix parameter values in
+ URI encoded form.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="UriInfo.html#getPathSegments()"><code>UriInfo.getPathSegments()</code></a>, 
+<a href="../PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatrixParameters()">getMatrixParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path segment.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath()</pre>
+<div class="block">Get the path segment.
+ <p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the path segment</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatrixParameters()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMatrixParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMatrixParameters()</pre>
+<div class="block">Get a map of the matrix parameters associated with the path segment.
+ The map keys are the names of the matrix parameters with any
+ percent-escaped octets decoded.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the map of matrix parameters</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PathSegment.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Request.html b/apidocs/2.1.6/javax/ws/rs/core/Request.html
new file mode 100644
index 0000000..348be74
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Request.html
@@ -0,0 +1,422 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Request (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Request (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Request.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface Request" class="title">Interface Request</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Request</span></pre>
+<div class="block">An injectable helper for request processing, all methods throw an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the scope of a request
+ (e.g. from a provider constructor).
+
+ Precondition processing (see the <code>evaluatePreconditions</code> methods)
+ can result in either a <code>null</code> return value to indicate that
+ preconditions have been met and that the request should continue, or
+ a non-<code>null</code> return value to indicate that preconditions were not met. In the
+ event that preconditions were not met, the returned <code>ResponseBuilder</code>
+ instance will have an appropriate status and will also include a <code>Vary</code>
+ header if the <a href="#selectVariant(java.util.List)"><code>selectVariant(List)</code></a> method was called prior to to calling
+ <code>evaluatePreconditions</code>. It is the responsibility of the caller
+ to check the status and add additional metadata if required. E.g., see
+ <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1, section 10.3.5</a>
+ for details of the headers that are expected to accompany a <code>304 Not Modified</code>
+ response.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions()">evaluatePreconditions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions for a resource that does not currently
+ exist.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions(java.util.Date)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions(java.util.Date,javax.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                     <a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evaluatePreconditions(javax.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMethod()">getMethod</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the request method, e.g.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="Variant.html" title="class in javax.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectVariant(java.util.List)">selectVariant</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Select the representation variant that best matches the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMethod()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMethod</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getMethod()</pre>
+<div class="block">Get the request method, e.g. GET, POST, etc.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the request method.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../HttpMethod.html" title="annotation in javax.ws.rs"><code>HttpMethod</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="selectVariant(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>selectVariant</h4>
+<pre class="methodSignature"><a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;selectVariant&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</pre>
+<div class="block">Select the representation variant that best matches the request. Returns
+ <code>null</code> in case there is no matching variant in the list.
+ <p>
+ More explicit variants are chosen ahead of less explicit ones. A vary header
+ is computed from the supplied list and automatically added to the  response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - a list of Variant that describe all of the available representation
+                 variants.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the variant that best matches the request or <code>null</code> if there's no match.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if variants is empty or <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions(javax.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions&#8203;(<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</pre>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>eTag</code> - an ETag for the current state of the resource</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with
+         the appropriate status if the preconditions are not met. A returned
+         <code>ResponseBuilder</code> will include an ETag header set with the value of eTag,
+         provided none of the precondition evaluation has failed, in which case
+         the ETag header would not be included and the status code of the returned
+         <code>ResponseBuilder</code> would be set to <a href="Response.Status.html#PRECONDITION_FAILED"><code>Response.Status.PRECONDITION_FAILED</code></a>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if eTag is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</pre>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>lastModified</code> - a date that specifies the modification date of the resource</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with
+         the appropriate status if the preconditions are not met.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if lastModified is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions(java.util.Date,javax.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                                               <a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</pre>
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>lastModified</code> - a date that specifies the modification date of the resource</dd>
+<dd><code>eTag</code> - an ETag for the current state of the resource</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with
+         the appropriate status if the preconditions are not met. A returned
+         <code>ResponseBuilder</code> will include an ETag header set with the value of eTag,
+         provided none of the precondition evaluation has failed, in which case
+         the ETag header would not be included and the status code of the returned
+         <code>ResponseBuilder</code> would be set to <a href="Response.Status.html#PRECONDITION_FAILED"><code>Response.Status.PRECONDITION_FAILED</code></a>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if lastModified or eTag is <code>null</code>.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="evaluatePreconditions()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>evaluatePreconditions</h4>
+<pre class="methodSignature"><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;evaluatePreconditions()</pre>
+<div class="block">Evaluate request preconditions for a resource that does not currently
+ exist. The primary use of this method is to support the {@link <a
+ href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24">
+ If-Match: *</a>} and {@link <a
+ href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26">
+ If-None-Match: *</a>} preconditions.
+
+ <p>Note that both preconditions <code>If-None-Match: *</code> and
+ <code>If-None-Match: <i>something</i></code> will always be considered to
+ have been met and it is the applications responsibility
+ to enforce any additional method-specific semantics. E.g. a
+ <code>PUT</code> on a resource that does not exist might succeed whereas
+ a <code>GET</code> on a resource that does not exist would likely result
+ in a 404 response. It would be the responsibility of the application to
+ generate the 404 response.</p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>null</code> if the preconditions are met or a <code>ResponseBuilder</code> set with
+         the appropriate status if the preconditions are not met.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Request.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Response.ResponseBuilder.html b/apidocs/2.1.6/javax/ws/rs/core/Response.ResponseBuilder.html
new file mode 100644
index 0000000..06db8ee
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Response.ResponseBuilder.html
@@ -0,0 +1,1150 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Response.ResponseBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.ResponseBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":9,"i20":6,"i21":6,"i22":6,"i23":10,"i24":10,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.ResponseBuilder.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Response.ResponseBuilder" class="title">Class Response.ResponseBuilder</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Response.ResponseBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.html" title="class in javax.ws.rs.core">Response</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">Response.ResponseBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity. An initial instance may be obtained via
+ static methods of the Response class, instance methods provide the
+ ability to set metadata. E.g. to create a response that indicates the
+ creation of a new resource:
+ <pre>&#64;POST
+ Response addWidget(...) {
+   Widget w = ...
+   URI widgetId = UriBuilder.fromResource(Widget.class)...
+   return Response.created(widgetId).build();
+ }</pre>
+
+ <p>Several methods have parameters of type URI, <a href="UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a> provides
+ convenient methods to create such values as does <code>URI.create()</code>.</p>
+
+ <p>Where multiple variants of the same method are provided, the type of
+ the supplied parameter is retained in the metadata of the built
+ <code>Response</code>.</p></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">ResponseBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use one of the static methods of
+ <code>Response</code> to obtain an instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allow(java.lang.String...)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allow(java.util.Set)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>abstract <a href="Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a Response instance from the current ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contentLocation(java.net.URI)">contentLocation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the content location.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#cookie(javax.ws.rs.core.NewCookie...)">cookie</a></span>&#8203;(<a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>...&nbsp;cookies)</code></th>
+<td class="colLast">
+<div class="block">Add cookies to the response message.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encoding(java.lang.String)">encoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity content encoding.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(java.lang.Object)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#expires(java.util.Date)">expires</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expires)</code></th>
+<td class="colLast">
+<div class="block">Set the response expiration date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#language(java.lang.String)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#language(java.util.Locale)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#lastModified(java.util.Date)">lastModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity last modification date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(java.lang.String,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#link(java.net.URI,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#links(javax.ws.rs.core.Link...)">links</a></span>&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>...&nbsp;links)</code></th>
+<td class="colLast">
+<div class="block">Add one or more link headers.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#location(java.net.URI)">location</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the location.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>protected static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceAll(javax.ws.rs.core.MultivaluedMap)">replaceAll</a></span>&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(javax.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(javax.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tag(java.lang.String)">tag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a strong response entity tag.</div>
+</td>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tag(javax.ws.rs.core.EntityTag)">tag</a></span>&#8203;(<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a response entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#type(javax.ws.rs.core.MediaType)">type</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i29">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variant(javax.ws.rs.core.Variant)">variant</a></span>&#8203;(<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Set message entity representation metadata.</div>
+</td>
+</tr>
+<tr class="altColor" id="i30">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variants(java.util.List)">variants</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i31">
+<td class="colFirst"><code>abstract <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#variants(javax.ws.rs.core.Variant...)">variants</a></span>&#8203;(<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>...&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ResponseBuilder</h4>
+<pre>protected&nbsp;ResponseBuilder()</pre>
+<div class="block">Protected constructor, use one of the static methods of
+ <code>Response</code> to obtain an instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newInstance</h4>
+<pre class="methodSignature">protected static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;newInstance()</pre>
+<div class="block">Create a new builder instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;build()</pre>
+<div class="block">Create a Response instance from the current ResponseBuilder. The builder
+ is reset to a blank state equivalent to calling the ok method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a Response instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;clone()</pre>
+<div class="block">
+ <p>
+ Create a copy of the ResponseBuilder preserving its state.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><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" class="externalLink">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a copy of the ResponseBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater
+                                  than <code>599</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status,
+                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dd><code>reasonPhrase</code> - the reason phrase.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater
+                                  than <code>599</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="status(javax.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+<a id="status(javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Set the status on the ResponseBuilder.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;entity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Set the response entity in the builder.
+ <p/>
+ Any Java type instance for a response entity, that is supported by the
+ runtime can be passed. It is the callers responsibility to wrap the
+ actual entity with <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic
+ type is required. Note that the entity can be also set as an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>.
+ <p/>
+ A specific entity media type can be set using one of the <code>type(...)</code>
+ methods.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the request entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated response builder instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)"><code>entity(java.lang.Object, java.lang.annotation.Annotation[])</code></a>, 
+<a href="#type(javax.ws.rs.core.MediaType)"><code>type(javax.ws.rs.core.MediaType)</code></a>, 
+<a href="#type(java.lang.String)"><code>type(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="entity(java.lang.Object,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>entity</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;entity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Set the response entity in the builder.
+ <p/>
+ Any Java type instance for a response entity, that is supported by the
+ runtime can be passed. It is the callers responsibility to wrap the
+ actual entity with <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic
+ type is required. Note that the entity can be also set as an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>.
+ <p/>
+ A specific entity media type can be set using one of the <code>type(...)</code>
+ methods.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the request entity.</dd>
+<dd><code>annotations</code> - annotations that will be passed to the <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a>,
+                    (in addition to any annotations declared directly on a resource
+                    method that returns the built response).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated response builder instance.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#entity(java.lang.Object)"><code>entity(java.lang.Object)</code></a>, 
+<a href="#type(javax.ws.rs.core.MediaType)"><code>type(javax.ws.rs.core.MediaType)</code></a>, 
+<a href="#type(java.lang.String)"><code>type(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="allow(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allow</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;allow&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;methods)</pre>
+<div class="block">Set the list of allowed methods for the resource. Any duplicate method
+ names will be truncated to a single entry.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>methods</code> - the methods to be listed as allowed for the resource,
+                if <code>null</code> any existing allowed method list will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="allow(java.util.Set)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>allow</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;allow&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;&nbsp;methods)</pre>
+<div class="block">Set the list of allowed methods for the resource.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>methods</code> - the methods to be listed as allowed for the resource,
+                if <code>null</code> any existing allowed method list will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="cacheControl(javax.ws.rs.core.CacheControl)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cacheControl</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;cacheControl&#8203;(<a href="CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</pre>
+<div class="block">Set the cache control data of the message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cacheControl</code> - the cache control directives, if <code>null</code>
+                     any existing cache control directives will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="encoding(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encoding</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;encoding&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Set the message entity content encoding.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encoding</code> - the content encoding of the message entity,
+                 if <code>null</code> any existing value for content encoding will be
+                 removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="header(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>header</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;header&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Add an arbitrary header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the header</dd>
+<dd><code>value</code> - the value of the header, the header will be serialized
+              using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if
+              one is available via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a>
+              for the class of <code>value</code> or using its <code>toString</code> method
+              if a header delegate is not available. If <code>value</code> is <code>null</code>
+              then all current headers of the same name will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="replaceAll(javax.ws.rs.core.MultivaluedMap)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceAll</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;replaceAll&#8203;(<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</pre>
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>headers</code> - new headers to be set, if <code>null</code> all existing
+                headers will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="language(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>language</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;language&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language)</pre>
+<div class="block">Set the message entity language.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - the language of the message entity, if <code>null</code> any
+                 existing value for language will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="language(java.util.Locale)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>language</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;language&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language)</pre>
+<div class="block">Set the message entity language.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - the language of the message entity, if <code>null</code> any
+                 existing value for type will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="type(javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;type&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</pre>
+<div class="block">Set the message entity media type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the media type of the message entity. If <code>null</code>, any
+             existing value for type will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="type(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>type</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;type&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Set the message entity media type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the media type of the message entity. If <code>null</code>, any
+             existing value for type will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="variant(javax.ws.rs.core.Variant)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variant</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;variant&#8203;(<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</pre>
+<div class="block">Set message entity representation metadata.
+ <p/>
+ Equivalent to setting the values of content type, content language,
+ and content encoding separately using the values of the variant properties.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variant</code> - metadata of the message entity, a <code>null</code> value is
+                equivalent to a variant with all <code>null</code> properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#encoding(java.lang.String)"><code>encoding(java.lang.String)</code></a>, 
+<a href="#language(java.util.Locale)"><code>language(java.util.Locale)</code></a>, 
+<a href="#type(javax.ws.rs.core.MediaType)"><code>type(javax.ws.rs.core.MediaType)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="contentLocation(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contentLocation</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;contentLocation&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Set the content location.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the content location. Relative or absolute URIs
+                 may be used for the value of content location. If <code>null</code> any
+                 existing value for content location will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="cookie(javax.ws.rs.core.NewCookie...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cookie</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;cookie&#8203;(<a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>...&nbsp;cookies)</pre>
+<div class="block">Add cookies to the response message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cookies</code> - new cookies that will accompany the response. A <code>null</code>
+                value will remove all cookies, including those added via the
+                <a href="#header(java.lang.String,java.lang.Object)"><code>header(java.lang.String, java.lang.Object)</code></a> method.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="expires(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>expires</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;expires&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expires)</pre>
+<div class="block">Set the response expiration date.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>expires</code> - the expiration date, if <code>null</code> removes any existing
+                expires value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="lastModified(java.util.Date)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lastModified</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;lastModified&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</pre>
+<div class="block">Set the response entity last modification date.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>lastModified</code> - the last modified date, if <code>null</code> any existing
+                     last modified value will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="location(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>location</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;location&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Set the location.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the location. If a relative URI is supplied it will be
+                 converted into an absolute URI by resolving it relative to the
+                 base URI of the application (see <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a>).
+                 If <code>null</code> any existing value for location will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="tag(javax.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tag</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;tag&#8203;(<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</pre>
+<div class="block">Set a response entity tag.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - the entity tag, if <code>null</code> any existing entity tag
+            value will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="tag(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tag</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;tag&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</pre>
+<div class="block">Set a strong response entity tag.
+ <p/>
+ This is a shortcut for <code>tag(new EntityTag(<i>value</i>))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - the string content of a strong entity tag. The
+            runtime will quote the supplied value when creating the header.
+            If <code>null</code> any existing entity tag value will be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="variants(javax.ws.rs.core.Variant...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variants</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;variants&#8203;(<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>...&nbsp;variants)</pre>
+<div class="block">Add a Vary header that lists the available variants.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - a list of available representation variants, a <code>null</code>
+                 value will remove an existing value for Vary header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="variants(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>variants</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;variants&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</pre>
+<div class="block">Add a Vary header that lists the available variants.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - a list of available representation variants, a <code>null</code>
+                 value will remove an existing value for Vary header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="links(javax.ws.rs.core.Link...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>links</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;links&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>...&nbsp;links)</pre>
+<div class="block">Add one or more link headers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>links</code> - links to be added to the message as headers, a <code>null</code>
+              value will remove any existing Link headers.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="link(java.net.URI,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;link&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</pre>
+<div class="block">Add a link header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link header.</dd>
+<dd><code>rel</code> - value of "rel" parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="link(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>link</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;link&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</pre>
+<div class="block">Add a link header.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - underlying URI for link header.</dd>
+<dd><code>rel</code> - value of "rel" parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.ResponseBuilder.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Response.Status.Family.html b/apidocs/2.1.6/javax/ws/rs/core/Response.Status.Family.html
new file mode 100644
index 0000000..90bd189
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Response.Status.Family.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Response.Status.Family (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.Status.Family (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":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";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.Family.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Enum Response.Status.Family" class="title">Enum Response.Status.Family</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Response.Status.Family</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&gt;</code>, <code>java.lang.constant.Constable</code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">Response.Status.Family</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&gt;</pre>
+<div class="block">An enumeration representing the class of status code. Family is used
+ here since class is overloaded in Java.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">E</a>&gt;&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CLIENT_ERROR">CLIENT_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>4xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INFORMATIONAL">INFORMATIONAL</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>1xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OTHER">OTHER</a></span></code></th>
+<td class="colLast">
+<div class="block">Other, unrecognized HTTP status codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REDIRECTION">REDIRECTION</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>3xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVER_ERROR">SERVER_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>5xx</code> HTTP status codes.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SUCCESSFUL">SUCCESSFUL</a></span></code></th>
+<td class="colLast">
+<div class="block"><code>2xx</code> HTTP status codes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static <a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#familyOf(int)">familyOf</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Get the response status family for the status code.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>static <a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>static <a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#describeConstable()" title="class or interface in java.lang" class="externalLink">describeConstable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">Object</a></h3>
+<code><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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="INFORMATIONAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INFORMATIONAL</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> INFORMATIONAL</pre>
+<div class="block"><code>1xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="SUCCESSFUL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUCCESSFUL</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> SUCCESSFUL</pre>
+<div class="block"><code>2xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="REDIRECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REDIRECTION</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> REDIRECTION</pre>
+<div class="block"><code>3xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="CLIENT_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_ERROR</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> CLIENT_ERROR</pre>
+<div class="block"><code>4xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> SERVER_ERROR</pre>
+<div class="block"><code>5xx</code> HTTP status codes.</div>
+</li>
+</ul>
+<a id="OTHER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>OTHER</h4>
+<pre>public static final&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> OTHER</pre>
+<div class="block">Other, unrecognized HTTP status codes.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="familyOf(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>familyOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&nbsp;familyOf&#8203;(int&nbsp;statusCode)</pre>
+<div class="block">Get the response status family for the status code.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusCode</code> - response status code to get the family for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>family of the response status code.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.Family.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Response.Status.html b/apidocs/2.1.6/javax/ws/rs/core/Response.Status.html
new file mode 100644
index 0000000..ad967d5
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Response.Status.html
@@ -0,0 +1,1216 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Response.Status (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.Status (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Enum Response.Status" class="title">Enum Response.Status</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Enum</a>&lt;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Response.Status</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&gt;</code>, <code>java.lang.constant.Constable</code>, <code><a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.html" title="class in javax.ws.rs.core">Response</a></dd>
+</dl>
+<hr>
+<pre>public static enum <span class="typeNameLabel">Response.Status</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&gt;
+implements <a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></pre>
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list. Additional status codes can be added by applications
+ by creating an implementation of <a href="Response.StatusType.html" title="interface in javax.ws.rs.core"><code>Response.StatusType</code></a>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></span></code></th>
+<td class="colLast">
+<div class="block">An enumeration representing the class of status code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="nested.classes.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">E</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.EnumDesc.html?is-external=true" title="class or interface in java.lang" class="externalLink">E</a>&gt;&gt;</code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum Constant</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ACCEPTED">ACCEPTED</a></span></code></th>
+<td class="colLast">
+<div class="block">202 Accepted, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BAD_GATEWAY">BAD_GATEWAY</a></span></code></th>
+<td class="colLast">
+<div class="block">502 Bad Gateway, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#BAD_REQUEST">BAD_REQUEST</a></span></code></th>
+<td class="colLast">
+<div class="block">400 Bad Request, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CONFLICT">CONFLICT</a></span></code></th>
+<td class="colLast">
+<div class="block">409 Conflict, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#CREATED">CREATED</a></span></code></th>
+<td class="colLast">
+<div class="block">201 Created, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#EXPECTATION_FAILED">EXPECTATION_FAILED</a></span></code></th>
+<td class="colLast">
+<div class="block">417 Expectation Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#FORBIDDEN">FORBIDDEN</a></span></code></th>
+<td class="colLast">
+<div class="block">403 Forbidden, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#FOUND">FOUND</a></span></code></th>
+<td class="colLast">
+<div class="block">302 Found, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#GATEWAY_TIMEOUT">GATEWAY_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">504 Gateway Timeout, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#GONE">GONE</a></span></code></th>
+<td class="colLast">
+<div class="block">410 Gone, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#HTTP_VERSION_NOT_SUPPORTED">HTTP_VERSION_NOT_SUPPORTED</a></span></code></th>
+<td class="colLast">
+<div class="block">505 HTTP Version Not Supported, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INTERNAL_SERVER_ERROR">INTERNAL_SERVER_ERROR</a></span></code></th>
+<td class="colLast">
+<div class="block">500 Internal Server Error, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#LENGTH_REQUIRED">LENGTH_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">411 Length Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#METHOD_NOT_ALLOWED">METHOD_NOT_ALLOWED</a></span></code></th>
+<td class="colLast">
+<div class="block">405 Method Not Allowed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#MOVED_PERMANENTLY">MOVED_PERMANENTLY</a></span></code></th>
+<td class="colLast">
+<div class="block">301 Moved Permanently, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NETWORK_AUTHENTICATION_REQUIRED">NETWORK_AUTHENTICATION_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">511 Network Authentication Required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-6">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NO_CONTENT">NO_CONTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">204 No Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_ACCEPTABLE">NOT_ACCEPTABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">406 Not Acceptable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_FOUND">NOT_FOUND</a></span></code></th>
+<td class="colLast">
+<div class="block">404 Not Found, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_IMPLEMENTED">NOT_IMPLEMENTED</a></span></code></th>
+<td class="colLast">
+<div class="block">501 Not Implemented, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#NOT_MODIFIED">NOT_MODIFIED</a></span></code></th>
+<td class="colLast">
+<div class="block">304 Not Modified, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#OK">OK</a></span></code></th>
+<td class="colLast">
+<div class="block">200 OK, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PARTIAL_CONTENT">PARTIAL_CONTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">206 Reset Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PAYMENT_REQUIRED">PAYMENT_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">402 Payment Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PRECONDITION_FAILED">PRECONDITION_FAILED</a></span></code></th>
+<td class="colLast">
+<div class="block">412 Precondition Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PRECONDITION_REQUIRED">PRECONDITION_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">428 Precondition required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#PROXY_AUTHENTICATION_REQUIRED">PROXY_AUTHENTICATION_REQUIRED</a></span></code></th>
+<td class="colLast">
+<div class="block">407 Proxy Authentication Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_ENTITY_TOO_LARGE">REQUEST_ENTITY_TOO_LARGE</a></span></code></th>
+<td class="colLast">
+<div class="block">413 Request Entity Too Large, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_HEADER_FIELDS_TOO_LARGE">REQUEST_HEADER_FIELDS_TOO_LARGE</a></span></code></th>
+<td class="colLast">
+<div class="block">431 Request Header Fields Too Large, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_TIMEOUT">REQUEST_TIMEOUT</a></span></code></th>
+<td class="colLast">
+<div class="block">408 Request Timeout, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUEST_URI_TOO_LONG">REQUEST_URI_TOO_LONG</a></span></code></th>
+<td class="colLast">
+<div class="block">414 Request-URI Too Long, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#REQUESTED_RANGE_NOT_SATISFIABLE">REQUESTED_RANGE_NOT_SATISFIABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">416 Requested Range Not Satisfiable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#RESET_CONTENT">RESET_CONTENT</a></span></code></th>
+<td class="colLast">
+<div class="block">205 Reset Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SEE_OTHER">SEE_OTHER</a></span></code></th>
+<td class="colLast">
+<div class="block">303 See Other, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SERVICE_UNAVAILABLE">SERVICE_UNAVAILABLE</a></span></code></th>
+<td class="colLast">
+<div class="block">503 Service Unavailable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TEMPORARY_REDIRECT">TEMPORARY_REDIRECT</a></span></code></th>
+<td class="colLast">
+<div class="block">307 Temporary Redirect, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#TOO_MANY_REQUESTS">TOO_MANY_REQUESTS</a></span></code></th>
+<td class="colLast">
+<div class="block">429 Too Many Requests, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNAUTHORIZED">UNAUTHORIZED</a></span></code></th>
+<td class="colLast">
+<div class="block">401 Unauthorized, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#UNSUPPORTED_MEDIA_TYPE">UNSUPPORTED_MEDIA_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">415 Unsupported Media Type, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#USE_PROXY">USE_PROXY</a></span></code></th>
+<td class="colLast">
+<div class="block">305 Use Proxy, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6">HTTP/1.1 documentation</a>}.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static <a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromStatusCode(int)">fromStatusCode</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReasonPhrase()">getReasonPhrase</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusCode()">getStatusCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the associated status code.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>static <a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>static <a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compareTo</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#describeConstable()" title="class or interface in java.lang" class="externalLink">describeConstable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">getDeclaringClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">Object</a></h3>
+<code><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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.core.Response.StatusType">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.core.<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></h3>
+<code><a href="Response.StatusType.html#toEnum()">toEnum</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a id="OK">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>OK</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> OK</pre>
+<div class="block">200 OK, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="CREATED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> CREATED</pre>
+<div class="block">201 Created, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="ACCEPTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ACCEPTED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> ACCEPTED</pre>
+<div class="block">202 Accepted, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="NO_CONTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NO_CONTENT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> NO_CONTENT</pre>
+<div class="block">204 No Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="RESET_CONTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESET_CONTENT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> RESET_CONTENT</pre>
+<div class="block">205 Reset Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="PARTIAL_CONTENT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PARTIAL_CONTENT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> PARTIAL_CONTENT</pre>
+<div class="block">206 Reset Content, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="MOVED_PERMANENTLY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MOVED_PERMANENTLY</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> MOVED_PERMANENTLY</pre>
+<div class="block">301 Moved Permanently, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FOUND</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> FOUND</pre>
+<div class="block">302 Found, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="SEE_OTHER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SEE_OTHER</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> SEE_OTHER</pre>
+<div class="block">303 See Other, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="NOT_MODIFIED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_MODIFIED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> NOT_MODIFIED</pre>
+<div class="block">304 Not Modified, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="USE_PROXY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USE_PROXY</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> USE_PROXY</pre>
+<div class="block">305 Use Proxy, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="TEMPORARY_REDIRECT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEMPORARY_REDIRECT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> TEMPORARY_REDIRECT</pre>
+<div class="block">307 Temporary Redirect, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="BAD_REQUEST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BAD_REQUEST</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> BAD_REQUEST</pre>
+<div class="block">400 Bad Request, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="UNAUTHORIZED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNAUTHORIZED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> UNAUTHORIZED</pre>
+<div class="block">401 Unauthorized, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="PAYMENT_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PAYMENT_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> PAYMENT_REQUIRED</pre>
+<div class="block">402 Payment Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="FORBIDDEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FORBIDDEN</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> FORBIDDEN</pre>
+<div class="block">403 Forbidden, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> NOT_FOUND</pre>
+<div class="block">404 Not Found, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="METHOD_NOT_ALLOWED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>METHOD_NOT_ALLOWED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> METHOD_NOT_ALLOWED</pre>
+<div class="block">405 Method Not Allowed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="NOT_ACCEPTABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_ACCEPTABLE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> NOT_ACCEPTABLE</pre>
+<div class="block">406 Not Acceptable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="PROXY_AUTHENTICATION_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROXY_AUTHENTICATION_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> PROXY_AUTHENTICATION_REQUIRED</pre>
+<div class="block">407 Proxy Authentication Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> REQUEST_TIMEOUT</pre>
+<div class="block">408 Request Timeout, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CONFLICT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> CONFLICT</pre>
+<div class="block">409 Conflict, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="GONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GONE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> GONE</pre>
+<div class="block">410 Gone, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="LENGTH_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LENGTH_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> LENGTH_REQUIRED</pre>
+<div class="block">411 Length Required, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="PRECONDITION_FAILED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PRECONDITION_FAILED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> PRECONDITION_FAILED</pre>
+<div class="block">412 Precondition Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="REQUEST_ENTITY_TOO_LARGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_ENTITY_TOO_LARGE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> REQUEST_ENTITY_TOO_LARGE</pre>
+<div class="block">413 Request Entity Too Large, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_URI_TOO_LONG">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_URI_TOO_LONG</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> REQUEST_URI_TOO_LONG</pre>
+<div class="block">414 Request-URI Too Long, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="UNSUPPORTED_MEDIA_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNSUPPORTED_MEDIA_TYPE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> UNSUPPORTED_MEDIA_TYPE</pre>
+<div class="block">415 Unsupported Media Type, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="REQUESTED_RANGE_NOT_SATISFIABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUESTED_RANGE_NOT_SATISFIABLE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> REQUESTED_RANGE_NOT_SATISFIABLE</pre>
+<div class="block">416 Requested Range Not Satisfiable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="EXPECTATION_FAILED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EXPECTATION_FAILED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> EXPECTATION_FAILED</pre>
+<div class="block">417 Expectation Failed, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="PRECONDITION_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PRECONDITION_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> PRECONDITION_REQUIRED</pre>
+<div class="block">428 Precondition required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-3">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="TOO_MANY_REQUESTS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TOO_MANY_REQUESTS</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> TOO_MANY_REQUESTS</pre>
+<div class="block">429 Too Many Requests, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-4">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="REQUEST_HEADER_FIELDS_TOO_LARGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUEST_HEADER_FIELDS_TOO_LARGE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> REQUEST_HEADER_FIELDS_TOO_LARGE</pre>
+<div class="block">431 Request Header Fields Too Large, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-5">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="INTERNAL_SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INTERNAL_SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> INTERNAL_SERVER_ERROR</pre>
+<div class="block">500 Internal Server Error, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="NOT_IMPLEMENTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NOT_IMPLEMENTED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> NOT_IMPLEMENTED</pre>
+<div class="block">501 Not Implemented, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="BAD_GATEWAY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BAD_GATEWAY</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> BAD_GATEWAY</pre>
+<div class="block">502 Bad Gateway, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="SERVICE_UNAVAILABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVICE_UNAVAILABLE</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> SERVICE_UNAVAILABLE</pre>
+<div class="block">503 Service Unavailable, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4">HTTP/1.1 documentation</a>}.</div>
+</li>
+</ul>
+<a id="GATEWAY_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GATEWAY_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> GATEWAY_TIMEOUT</pre>
+<div class="block">504 Gateway Timeout, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="HTTP_VERSION_NOT_SUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HTTP_VERSION_NOT_SUPPORTED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> HTTP_VERSION_NOT_SUPPORTED</pre>
+<div class="block">505 HTTP Version Not Supported, see {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6">HTTP/1.1 documentation</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="NETWORK_AUTHENTICATION_REQUIRED">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NETWORK_AUTHENTICATION_REQUIRED</h4>
+<pre>public static final&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> NETWORK_AUTHENTICATION_REQUIRED</pre>
+<div class="block">511 Network Authentication Required, see {@link <a href="https://tools.ietf.org/html/rfc6585#section-6">RFC 6585: Additional HTTP Status Codes</a>}.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="values()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a id="valueOf(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a id="getFamily()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFamily</h4>
+<pre class="methodSignature">public&nbsp;<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&nbsp;getFamily()</pre>
+<div class="block">Get the class of status code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Response.StatusType.html#getFamily()">getFamily</a></code>&nbsp;in interface&nbsp;<code><a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class of status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;getStatusCode()</pre>
+<div class="block">Get the associated status code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Response.StatusType.html#getStatusCode()">getStatusCode</a></code>&nbsp;in interface&nbsp;<code><a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReasonPhrase()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReasonPhrase</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getReasonPhrase()</pre>
+<div class="block">Get the reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="Response.StatusType.html#getReasonPhrase()">getReasonPhrase</a></code>&nbsp;in interface&nbsp;<code><a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<div class="block">Get the reason phrase.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromStatusCode(int)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromStatusCode</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;fromStatusCode&#8203;(int&nbsp;statusCode)</pre>
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>statusCode</code> - the numerical status code.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the matching Status or null is no matching Status is defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.Status.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Response.StatusType.html b/apidocs/2.1.6/javax/ws/rs/core/Response.StatusType.html
new file mode 100644
index 0000000..afa6767
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Response.StatusType.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Response.StatusType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response.StatusType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":18};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.StatusType.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface Response.StatusType" class="title">Interface Response.StatusType</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><code><a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Response.html" title="class in javax.ws.rs.core">Response</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">Response.StatusType</span></pre>
+<div class="block">Base interface for statuses used in responses.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.1</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReasonPhrase()">getReasonPhrase</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusCode()">getStatusCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the associated status code.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>default <a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toEnum()">toEnum</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the this Status Type as a <a href="Response.Status.html" title="enum in javax.ws.rs.core"><code>Response.Status</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatusCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusCode</h4>
+<pre class="methodSignature">int&nbsp;getStatusCode()</pre>
+<div class="block">Get the associated status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getFamily()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFamily</h4>
+<pre class="methodSignature"><a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>&nbsp;getFamily()</pre>
+<div class="block">Get the class of status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the class of status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReasonPhrase()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReasonPhrase</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getReasonPhrase()</pre>
+<div class="block">Get the reason phrase.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the reason phrase.</dd>
+</dl>
+</li>
+</ul>
+<a id="toEnum()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toEnum</h4>
+<pre class="methodSignature">default&nbsp;<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;toEnum()</pre>
+<div class="block">Get the this Status Type as a <a href="Response.Status.html" title="enum in javax.ws.rs.core"><code>Response.Status</code></a>.
+ <p>
+ Please note that returned status contains only a status code, the reason phrase is
+ set to default one (corresponding to the status code).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><a href="Response.Status.html" title="enum in javax.ws.rs.core"><code>Response.Status</code></a> representing this status type.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.StatusType.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Response.html b/apidocs/2.1.6/javax/ws/rs/core/Response.html
new file mode 100644
index 0000000..e0ec0dd
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Response.html
@@ -0,0 +1,1808 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Response (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Response (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":9,"i2":6,"i3":6,"i4":9,"i5":9,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":10,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":6,"i38":6,"i39":6,"i40":6,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Response" class="title">Class Response</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Response</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public abstract class <span class="typeNameLabel">Response</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
+implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.
+ <p>
+ An application class should not extend this class directly. <code>Response</code> class is
+ reserved for an extension by API implementation providers. An application should use one
+ of the static methods to create a <code>Response</code> instance using a ResponseBuilder.
+ </p>
+ <p>
+ Several methods have parameters of type URI, <a href="UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a> provides
+ convenient methods to create such values as does <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true#create(java.lang.String)" title="class or interface in java.net" class="externalLink"><code>URI.create(java.lang.String)</code></a>.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></span></code></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span></code></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Response</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use one of the static methods to obtain a
+ <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a> instance and obtain a Response from that.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accepted()">accepted</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#accepted(java.lang.Object)">accepted</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains
+ a representation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#bufferEntity()">bufferEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Buffer the message entity data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>abstract void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the underlying message entity input stream (if available and open)
+ as well as releases any other resources associated with the response
+ (e.g.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#created(java.net.URI)">created</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a created resource, set the location
+ header using the supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromResponse(javax.ws.rs.core.Response)">fromResponse</a></span>&#8203;(<a href="Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an
+ existing Response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAllowedMethods()">getAllowedMethods</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDate()">getDate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get message date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the message entity Java instance.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>abstract <a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their object values.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaderString(java.lang.String)">getHeaderString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Get a message header as a single string value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the message entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLastModified()">getLastModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the last modified date.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>abstract int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLength()">getLength</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Content-Length value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>abstract <a href="Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>abstract <a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as headers.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocation()">getLocation</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the location.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>abstract <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the message entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>abstract <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetadata()">getMetadata</a></span>()</code></th>
+<td class="colLast">
+<div class="block">See <a href="#getHeaders()"><code>getHeaders()</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>abstract int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatus()">getStatus</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the status code associated with the response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>abstract <a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>abstract <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their string values.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasEntity()">hasEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if there is an entity available in the response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><code>abstract boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasLink(java.lang.String)">hasLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Check if link for relation exists.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#noContent()">noContent</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+</td>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notAcceptable(java.util.List)">notAcceptable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i29">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notModified()">notModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="altColor" id="i30">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notModified(java.lang.String)">notModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status
+ and a strong entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i31">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notModified(javax.ws.rs.core.EntityTag)">notModified</a></span>&#8203;(<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="altColor" id="i32">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok()">ok</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i33">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i34">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object,java.lang.String)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i35">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object,javax.ws.rs.core.MediaType)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i36">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ok(java.lang.Object,javax.ws.rs.core.Variant)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i37">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(java.lang.Class)">readEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i38">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(java.lang.Class,java.lang.annotation.Annotation%5B%5D)">readEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i39">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(javax.ws.rs.core.GenericType)">readEntity</a></span>&#8203;(<a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i40">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readEntity(javax.ws.rs.core.GenericType,java.lang.annotation.Annotation%5B%5D)">readEntity</a></span>&#8203;(<a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i41">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#seeOther(java.net.URI)">seeOther</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a redirection.</div>
+</td>
+</tr>
+<tr class="altColor" id="i42">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#serverError()">serverError</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i43">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="altColor" id="i44">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i45">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(javax.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="altColor" id="i46">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#status(javax.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i47">
+<td class="colFirst"><code>static <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#temporaryRedirect(java.net.URI)">temporaryRedirect</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Response</h4>
+<pre>protected&nbsp;Response()</pre>
+<div class="block">Protected constructor, use one of the static methods to obtain a
+ <a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a> instance and obtain a Response from that.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getStatus()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre class="methodSignature">public abstract&nbsp;int&nbsp;getStatus()</pre>
+<div class="block">Get the status code associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status code.</dd>
+</dl>
+</li>
+</ul>
+<a id="getStatusInfo()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatusInfo</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;getStatusInfo()</pre>
+<div class="block">Get the complete status information associated with the response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the response status information. The returned value is never
+         <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get the message entity Java instance. Returns <code>null</code> if the message
+ does not contain an entity body.
+ <p>
+ If the entity is represented by an un-consumed <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>
+ the method will return the input stream.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity or <code>null</code> if message does not contain an
+         entity body (i.e. when <a href="#hasEntity()"><code>hasEntity()</code></a> returns <code>false</code>).</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity was previously fully consumed
+                               as an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, or
+                               if the response has been <a href="#close()"><code>closed</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> if the content of the
+ message cannot be mapped to an entity of the requested type and
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input
+ stream or if the original entity input stream has already been consumed
+ without <a href="#bufferEntity()"><code>buffering</code></a> the entity data prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for
+ subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>. Unless the supplied entity
+ type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream
+ if open. In case the entity data has been buffered, the buffer will be reset
+ prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding
+         Java object that represents zero-length data. In case no zero-length representation
+         is defined for the Java type, a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> wrapping the
+         underlying <a href="NoContentException.html" title="class in javax.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - if the content of the message cannot be
+                               mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream,
+                               the response has been <a href="#close()"><code>closed</code></a> already,
+                               or if the entity input stream has been fully consumed already and has
+                               not been buffered prior consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> if the content of the
+ message cannot be mapped to an entity of the requested type and
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input
+ stream or if the original entity input stream has already been consumed
+ without <a href="#bufferEntity()"><code>buffering</code></a> the entity data prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for
+ subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>. Unless the supplied entity
+ type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream
+ if open. In case the entity data has been buffered, the buffer will be reset
+ prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity; may be generic.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding
+         Java object that represents zero-length data. In case no zero-length representation
+         is defined for the Java type, a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> wrapping the
+         underlying <a href="NoContentException.html" title="class in javax.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - if the content of the message cannot be
+                               mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream,
+                               the response has been <a href="#close()"><code>closed</code></a> already,
+                               or if the entity input stream has been fully consumed already and has
+                               not been buffered prior consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(java.lang.Class,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;entityType,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> if the content of the
+ message cannot be mapped to an entity of the requested type and
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input
+ stream or if the original entity input stream has already been consumed
+ without <a href="#bufferEntity()"><code>buffering</code></a> the entity data prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for
+ subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>. Unless the supplied entity
+ type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream
+ if open. In case the entity data has been buffered, the buffer will be reset
+ prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity.</dd>
+<dd><code>annotations</code> - annotations that will be passed to the <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding
+         Java object that represents zero-length data. In case no zero-length representation
+         is defined for the Java type, a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> wrapping the
+         underlying <a href="NoContentException.html" title="class in javax.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - if the content of the message cannot be
+                               mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream,
+                               the response has been <a href="#close()"><code>closed</code></a> already,
+                               or if the entity input stream has been fully consumed already and has
+                               not been buffered prior consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="readEntity(javax.ws.rs.core.GenericType,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;readEntity&#8203;(<a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.
+ <p>
+ Method throws an <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> if the content of the
+ message cannot be mapped to an entity of the requested type and
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> in case the entity is not backed by an input
+ stream or if the original entity input stream has already been consumed
+ without <a href="#bufferEntity()"><code>buffering</code></a> the entity data prior consuming.
+ </p>
+ <p>
+ A message instance returned from this method will be cached for
+ subsequent retrievals via <a href="#getEntity()"><code>getEntity()</code></a>. Unless the supplied entity
+ type is an <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>input stream</code></a>, this method automatically
+ <a href="#close()"><code>closes</code></a> the an unconsumed original response entity data stream
+ if open. In case the entity data has been buffered, the buffer will be reset
+ prior consuming the buffered data to enable subsequent invocations of
+ <code>readEntity(...)</code> methods on this response.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - entity instance Java type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entityType</code> - the type of entity; may be generic.</dd>
+<dd><code>annotations</code> - annotations that will be passed to the <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message entity; for a zero-length response entities returns a corresponding
+         Java object that represents zero-length data. In case no zero-length representation
+         is defined for the Java type, a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> wrapping the
+         underlying <a href="NoContentException.html" title="class in javax.ws.rs.core"><code>NoContentException</code></a> is thrown.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - if the content of the message cannot be
+                               mapped to an entity of the requested type.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the entity is not backed by an input stream,
+                               the response has been <a href="#close()"><code>closed</code></a> already,
+                               or if the entity input stream has been fully consumed already and has
+                               not been buffered prior consuming.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="hasEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;hasEntity()</pre>
+<div class="block">Check if there is an entity available in the response. The method returns
+ <code>true</code> if the entity is present, returns <code>false</code> otherwise.
+ <p>
+ Note that the method may return <code>true</code> also for response messages with
+ a zero-length content, in case the <code><a href="HttpHeaders.html#CONTENT_LENGTH">"Content-Length"</a></code> and
+ <code><a href="HttpHeaders.html#CONTENT_TYPE">"Content-Type"</a></code> headers are specified in the message.
+ In such case, an attempt to read the entity using one of the <code>readEntity(...)</code>
+ methods will return a corresponding instance representing a zero-length entity for a
+ given Java type or produce a <a href="../ProcessingException.html" title="class in javax.ws.rs"><code>ProcessingException</code></a> in case no such instance
+ is available for the Java type.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if there is an entity present in the message,
+         <code>false</code> otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the response has been <a href="#close()"><code>closed</code></a>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="bufferEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>bufferEntity</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;bufferEntity()</pre>
+<div class="block">Buffer the message entity data.
+ <p>
+ In case the message entity is backed by an unconsumed entity input stream,
+ all the bytes of the original entity input stream are read and stored in a
+ local buffer. The original entity input stream is consumed and automatically
+ closed as part of the operation and the method returns <code>true</code>.
+ </p>
+ <p>
+ In case the response entity instance is not backed by an unconsumed input stream
+ an invocation of <code>bufferEntity</code> method is ignored and the method returns
+ <code>false</code>.
+ </p>
+ <p>
+ This operation is idempotent, i.e. it can be invoked multiple times with
+ the same effect which also means that calling the <code>bufferEntity()</code>
+ method on an already buffered (and thus closed) message instance is legal
+ and has no further effect. Also, the result returned by the <code>bufferEntity()</code>
+ method is consistent across all invocations of the method on the same
+ <code>Response</code> instance.
+ </p>
+ <p>
+ Buffering the message entity data allows for multiple invocations of
+ <code>readEntity(...)</code> methods on the response instance. Note however, that
+ once the response instance itself is <a href="#close()"><code>closed</code></a>, the implementations
+ are expected to release the buffered message entity data too. Therefore any subsequent
+ attempts to read a message entity stream on such closed response will result in an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the message entity input stream was available and
+         was buffered successfully, returns <code>false</code> if the entity stream
+         was not available.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - if there was an error while buffering the entity
+                               input stream.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the response has been <a href="#close()"><code>closed</code></a>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">public abstract&nbsp;void&nbsp;close()</pre>
+<div class="block">Close the underlying message entity input stream (if available and open)
+ as well as releases any other resources associated with the response
+ (e.g. <a href="#bufferEntity()"><code>buffered message entity data</code></a>).
+ <p>
+ This operation is idempotent, i.e. it can be invoked multiple times with the
+ same effect which also means that calling the <code>close()</code> method on an
+ already closed message instance is legal and has no further effect.
+ </p>
+ <p>
+ The <code>close()</code> method should be invoked on all instances that
+ contain an un-consumed entity input stream to ensure the resources associated
+ with the instance are properly cleaned-up and prevent potential memory leaks.
+ This is typical for client-side scenarios where application layer code
+ processes only the response headers and ignores the response entity.
+ </p>
+ <p>
+ Any attempts to manipulate (read, get, buffer) a message entity on a closed response
+ will result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.
+ </p></div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - if there is an error closing the response.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the message entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if there is no response entity.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the message entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language of the entity or null if not specified.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLength()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLength</h4>
+<pre class="methodSignature">public abstract&nbsp;int&nbsp;getLength()</pre>
+<div class="block">Get Content-Length value.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Content-Length as integer if present and valid number. In other
+         cases returns <code>-1</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getAllowedMethods()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAllowedMethods</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;&nbsp;getAllowedMethods()</pre>
+<div class="block">Get the allowed HTTP methods from the Allow HTTP header.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the allowed HTTP methods, all methods will returned as upper case
+         strings.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getCookies()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCookies</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;&nbsp;getCookies()</pre>
+<div class="block">Get any new cookies set on the response message.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only map of cookie name (String) to Cookie.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntityTag()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntityTag</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;getEntityTag()</pre>
+<div class="block">Get the entity tag.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the entity tag, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getDate()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getDate()</pre>
+<div class="block">Get message date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message date, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLastModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastModified</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;getLastModified()</pre>
+<div class="block">Get the last modified date.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the last modified date, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLocation()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLocation</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getLocation()</pre>
+<div class="block">Get the location.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the location URI, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinks()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinks</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&gt;&nbsp;getLinks()</pre>
+<div class="block">Get the links attached to the message as headers. Any links in the message
+ that are relative must be resolved with respect to the actual request URI
+ that produced this response. Note that request URIs may be updated by
+ filters, so the actual request URI may differ from that in the original
+ invocation.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>links, may return empty <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Set</code></a> if no links are present. Does
+         not return <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="hasLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasLink</h4>
+<pre class="methodSignature">public abstract&nbsp;boolean&nbsp;hasLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Check if link for relation exists.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the link for the relation is present in the
+         <a href="#getHeaders()"><code>message headers</code></a>, <code>false</code> otherwise.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLink(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLink</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;getLink&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Get the link for the relation. A relative link is resolved with respect
+ to the actual request URI that produced this response. Note that request
+ URIs may be updated by filters, so the actual request URI may differ from
+ that in the original invocation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link for the relation, otherwise <code>null</code> if not present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getLinkBuilder(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLinkBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;getLinkBuilder&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</pre>
+<div class="block">Convenience method that returns a <a href="Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a> for the relation.
+ See <a href="#getLink(java.lang.String)"><code>getLink(java.lang.String)</code></a> for more information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>relation</code> - link relation.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the link builder for the relation, otherwise <code>null</code> if not
+         present.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getMetadata()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMetadata</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getMetadata()</pre>
+<div class="block">See <a href="#getHeaders()"><code>getHeaders()</code></a>.
+
+ This method is considered deprecated. Users are encouraged to switch their
+ code to use the <code>getHeaders()</code> method instead. The method may be annotated
+ as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>&#64;Deprecated</code></a> in a future release of the API.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a multivalued map.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature">public&nbsp;<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get view of the response headers and their object values.
+
+ The underlying header data may be subsequently modified by the runtime on the
+ server side. Changes in the underlying header data are reflected in this view.
+ <p>
+ On the server-side, when the message is sent, the non-string values will be serialized
+ using a <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available via
+ <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a> for the
+ class of the value or using the values <code>toString</code> method if a header delegate is
+ not available.
+ </p>
+ <p>
+ On the client side, the returned map is identical to the one returned by
+ <a href="#getStringHeaders()"><code>getStringHeaders()</code></a>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as an object view of header values.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getStringHeaders()"><code>getStringHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getStringHeaders()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStringHeaders</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getStringHeaders()</pre>
+<div class="block">Get view of the response headers and their string values.
+
+ The underlying header data may be subsequently modified by the runtime on
+ the server side. Changes in the underlying header data are reflected in this view.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>response headers as a string view of header values.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getHeaderString(java.lang.String)"><code>getHeaderString(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaderString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHeaderString</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getHeaderString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Get a message header as a single string value.
+
+ Each single header value is converted to String using a
+ <a href="../ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> if one is available
+ via <a href="../ext/RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)"><code>RuntimeDelegate.createHeaderDelegate(java.lang.Class)</code></a>
+ for the header value class or using its <code>toString</code> method  if a header
+ delegate is not available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the message header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the message header value. If the message header is not present then
+         <code>null</code> is returned. If the message header is present but has no
+         value then the empty string is returned. If the message header is present
+         more than once then the values of joined together and separated by a ','
+         character.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getHeaders()"><code>getHeaders()</code></a>, 
+<a href="#getStringHeaders()"><code>getStringHeaders()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="fromResponse(javax.ws.rs.core.Response)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromResponse</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;fromResponse&#8203;(<a href="Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</pre>
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an
+ existing Response.
+ <p>
+ The returned builder has its own <a href="#getHeaders()"><code>response headers</code></a>
+ but the header values are shared with the original <code>Response</code> instance.
+ The original response entity instance reference is set in the new response
+ builder.
+ </p>
+ <p>
+ Note that if the entity is backed by an un-consumed input stream, the
+ reference to the stream is copied. In such case make sure to
+ <a href="#bufferEntity()"><code>buffer</code></a> the entity stream of the original response
+ instance before passing it to this method.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - a Response from which the status code, entity and
+                 <a href="#getHeaders()"><code>response headers</code></a> will be copied.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="status(javax.ws.rs.core.Response.StatusType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(javax.ws.rs.core.Response.Status)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(<a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater
+                                  than <code>599</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="status(int,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>status</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;status&#8203;(int&nbsp;status,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</pre>
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>status</code> - the response status.</dd>
+<dd><code>reasonPhrase</code> - the reason phrase.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if status is less than <code>100</code> or greater
+                                  than <code>599</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+</dl>
+</li>
+</ul>
+<a id="ok()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok()</pre>
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the
+ callers responsibility to wrap the actual entity with
+ <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object,javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                          <a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the
+ callers responsibility to wrap the actual entity with
+ <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dd><code>type</code> - the media type of the entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the
+ callers responsibility to wrap the actual entity with
+ <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dd><code>type</code> - the media type of the entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="ok(java.lang.Object,javax.ws.rs.core.Variant)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ok</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;ok&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+                                          <a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</pre>
+<div class="block">Create a new ResponseBuilder that contains a representation. It is the
+ callers responsibility to wrap the actual entity with
+ <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dd><code>variant</code> - representation metadata.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="serverError()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serverError</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;serverError()</pre>
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="created(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>created</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;created&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Create a new ResponseBuilder for a created resource, set the location
+ header using the supplied value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the URI of the new resource. If a relative URI is
+                 supplied it will be converted into an absolute URI by resolving it
+                 relative to the request URI (see <a href="UriInfo.html#getRequestUri()"><code>UriInfo.getRequestUri()</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if location is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="accepted()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accepted</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;accepted()</pre>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="accepted(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>accepted</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;accepted&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains
+ a representation. It is the callers responsibility to wrap the actual entity with
+ <a href="GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a> if preservation of its generic type is required.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - the representation entity data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="noContent()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>noContent</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;noContent()</pre>
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="notModified()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>notModified</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notModified()</pre>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="notModified(javax.ws.rs.core.EntityTag)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>notModified</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notModified&#8203;(<a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</pre>
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - a tag for the unmodified entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if tag is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="notModified(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>notModified</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notModified&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</pre>
+<div class="block">Create a new ResponseBuilder with a not-modified status
+ and a strong entity tag. This is a shortcut
+ for <code>notModified(new EntityTag(<i>value</i>))</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tag</code> - the string content of a strong entity tag. The
+            runtime will quote the supplied value when creating the
+            header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if tag is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="seeOther(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>seeOther</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;seeOther&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Create a new ResponseBuilder for a redirection. Used in the
+ redirect-after-POST (aka POST/redirect/GET) pattern.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the redirection URI. If a relative URI is
+                 supplied it will be converted into an absolute URI by resolving it
+                 relative to the base URI of the application (see
+                 <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if location is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="temporaryRedirect(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>temporaryRedirect</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;temporaryRedirect&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</pre>
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>location</code> - the redirection URI. If a relative URI is
+                 supplied it will be converted into an absolute URI by resolving it
+                 relative to the base URI of the application (see
+                 <a href="UriInfo.html#getBaseUri()"><code>UriInfo.getBaseUri()</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if location is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="notAcceptable(java.util.List)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>notAcceptable</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;notAcceptable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</pre>
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>variants</code> - list of variants that were available, a null value is
+                 equivalent to an empty list.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new response builder.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Response.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/SecurityContext.html b/apidocs/2.1.6/javax/ws/rs/core/SecurityContext.html
new file mode 100644
index 0000000..77951cf
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/SecurityContext.html
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SecurityContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SecurityContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SecurityContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface SecurityContext" class="title">Interface SecurityContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">SecurityContext</span></pre>
+<div class="block">An injectable interface that provides access to security related
+ information.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BASIC_AUTH">BASIC_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Basic authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CLIENT_CERT_AUTH">CLIENT_CERT_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Client Certificate authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DIGEST_AUTH">DIGEST_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Digest authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FORM_AUTH">FORM_AUTH</a></span></code></th>
+<td class="colLast">
+<div class="block">String identifier for Form authentication.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAuthenticationScheme()">getAuthenticationScheme</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns the string value of the authentication scheme used to protect
+ the resource.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security" class="externalLink">Principal</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUserPrincipal()">getUserPrincipal</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a <code>java.security.Principal</code> object containing the
+ name of the current authenticated user.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSecure()">isSecure</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns a boolean indicating whether this request was made
+ using a secure channel, such as HTTPS.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUserInRole(java.lang.String)">isUserInRole</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;role)</code></th>
+<td class="colLast">
+<div class="block">Returns a boolean indicating whether the authenticated user is included
+ in the specified logical "role".</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="BASIC_AUTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BASIC_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> BASIC_AUTH</pre>
+<div class="block">String identifier for Basic authentication. Value "BASIC"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.SecurityContext.BASIC_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="CLIENT_CERT_AUTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_CERT_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> CLIENT_CERT_AUTH</pre>
+<div class="block">String identifier for Client Certificate authentication. Value "CLIENT_CERT"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.SecurityContext.CLIENT_CERT_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="DIGEST_AUTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DIGEST_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> DIGEST_AUTH</pre>
+<div class="block">String identifier for Digest authentication. Value "DIGEST"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.SecurityContext.DIGEST_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a id="FORM_AUTH">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORM_AUTH</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> FORM_AUTH</pre>
+<div class="block">String identifier for Form authentication. Value "FORM"</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.core.SecurityContext.FORM_AUTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getUserPrincipal()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPrincipal</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security" class="externalLink">Principal</a>&nbsp;getUserPrincipal()</pre>
+<div class="block">Returns a <code>java.security.Principal</code> object containing the
+ name of the current authenticated user. If the user
+ has not been authenticated, the method returns null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>java.security.Principal</code> containing the name
+         of the user making this request; null if the user has not been
+         authenticated</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="isUserInRole(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isUserInRole</h4>
+<pre class="methodSignature">boolean&nbsp;isUserInRole&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;role)</pre>
+<div class="block">Returns a boolean indicating whether the authenticated user is included
+ in the specified logical "role". If the user has not been authenticated,
+ the method returns <code>false</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>role</code> - a <code>String</code> specifying the name of the role</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a <code>boolean</code> indicating whether the user making
+         the request belongs to a given role; <code>false</code> if the user
+         has not been authenticated</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="isSecure()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSecure</h4>
+<pre class="methodSignature">boolean&nbsp;isSecure()</pre>
+<div class="block">Returns a boolean indicating whether this request was made
+ using a secure channel, such as HTTPS.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the request was made using a secure
+         channel, <code>false</code> otherwise</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="getAuthenticationScheme()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAuthenticationScheme</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getAuthenticationScheme()</pre>
+<div class="block">Returns the string value of the authentication scheme used to protect
+ the resource. If the resource is not authenticated, null is returned.
+
+ Values are the same as the CGI variable AUTH_TYPE</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>one of the static members BASIC_AUTH, FORM_AUTH,
+         CLIENT_CERT_AUTH, DIGEST_AUTH (suitable for == comparison) or the
+         container-specific string indicating the authentication scheme,
+         or null if the request was not authenticated.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SecurityContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/StreamingOutput.html b/apidocs/2.1.6/javax/ws/rs/core/StreamingOutput.html
new file mode 100644
index 0000000..f28f6cf
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/StreamingOutput.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>StreamingOutput (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StreamingOutput (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StreamingOutput.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface StreamingOutput" class="title">Interface StreamingOutput</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">StreamingOutput</span></pre>
+<div class="block">A type that may be used as a resource method return value or as the entity
+ in a <a href="Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> when the application wishes to stream the output.
+ This is a lightweight alternative to a
+ <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a>.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a>, 
+<a href="Response.html" title="class in javax.ws.rs.core"><code>Response</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#write(java.io.OutputStream)">write</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;output)</code></th>
+<td class="colLast">
+<div class="block">Called to write the message body.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="write(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>write</h4>
+<pre class="methodSignature">void&nbsp;write&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;output)
+    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+           <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Called to write the message body.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>output</code> - the OutputStream to write to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error is encountered</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - if a specific
+                             HTTP error response needs to be produced. Only effective if thrown prior
+                             to any bytes being written to output.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StreamingOutput.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/UriBuilder.html b/apidocs/2.1.6/javax/ws/rs/core/UriBuilder.html
new file mode 100644
index 0000000..c1eee6b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/UriBuilder.html
@@ -0,0 +1,1690 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>UriBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":6,"i15":6,"i16":9,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilder.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class UriBuilder" class="title">Class UriBuilder</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.UriBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">UriBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">URI template-aware utility class for building URIs from their components. See
+ <a href="../Path.html#value()"><code>Path.value()</code></a> for an explanation of URI templates.
+
+ <p>Builder methods perform contextual encoding of characters not permitted in
+ the corresponding URI component following the rules of the
+ <a href="http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1">application/x-www-form-urlencoded</a>
+ media type for query parameters and
+ <a href="http://ietf.org/rfc/rfc3986.txt">RFC 3986</a> for all other
+ components. Note that only characters not permitted in a particular component
+ are subject to encoding so, e.g., a path supplied to one of the <code>path</code>
+ methods may contain matrix parameters or multiple path segments since the
+ separators are legal characters and will not be encoded. Percent encoded
+ values are also recognized where allowed and will not be double encoded.</p>
+
+ <p>URI templates are allowed in most components of a URI but their value is
+ restricted to a particular component. E.g.
+ <blockquote><code>UriBuilder.fromPath("{arg1}").build("foo#bar");</code></blockquote>
+ would result in encoding of the '#' such that the resulting URI is
+ "foo%23bar". To create a URI "foo#bar" use
+ <blockquote><code>UriBuilder.fromPath("{arg1}").fragment("{arg2}").build("foo", "bar")</code></blockquote>
+ instead. URI template names and delimiters are never encoded but their
+ values are encoded when a URI is built.
+ Template parameter regular expressions are ignored when building a URI, i.e.
+ no validation is performed.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>, 
+<a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">UriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code>
+ methods to obtain an instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build(java.lang.Object%5B%5D,boolean)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;values,
+     boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromEncoded(java.lang.Object...)">buildFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromEncodedMap(java.util.Map)">buildFromEncodedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromMap(java.util.Map)">buildFromMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildFromMap(java.util.Map,boolean)">buildFromMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values,
+            boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a copy of the UriBuilder preserving its state.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fragment(java.lang.String)">fragment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fragment)</code></th>
+<td class="colLast">
+<div class="block">Set the URI fragment.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromLink(javax.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from a Link.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a
+ <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a
+ URI path.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a
+ root resource class.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code>static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#host(java.lang.String)">host</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host)</code></th>
+<td class="colLast">
+<div class="block">Set the URI host.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code>protected static <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.Class)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated class to the
+ existing path.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.Class,java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated method to the
+ existing path.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i19">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.reflect.Method)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method to the
+ existing path.</div>
+</td>
+</tr>
+<tr class="altColor" id="i20">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Append path to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i21">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#port(int)">port</a></span>&#8203;(int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Set the URI port.</div>
+</td>
+</tr>
+<tr class="altColor" id="i22">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a query parameter to the existing set of query parameters.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i23">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceMatrix(java.lang.String)">replaceMatrix</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;matrix)</code></th>
+<td class="colLast">
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
+</td>
+</tr>
+<tr class="altColor" id="i24">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceMatrixParam(java.lang.String,java.lang.Object...)">replaceMatrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a matrix parameter on
+ the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i25">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replacePath(java.lang.String)">replacePath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Set the URI path.</div>
+</td>
+</tr>
+<tr class="altColor" id="i26">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceQuery(java.lang.String)">replaceQuery</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Set the URI query string.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i27">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceQueryParam(java.lang.String,java.lang.Object...)">replaceQueryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a query parameter.</div>
+</td>
+</tr>
+<tr class="altColor" id="i28">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i29">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.</div>
+</td>
+</tr>
+<tr class="altColor" id="i30">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied encoded value.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i31">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor" id="i32">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i33">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor" id="i34">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#scheme(java.lang.String)">scheme</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;scheme)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i35">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schemeSpecificPart(java.lang.String)">schemeSpecificPart</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ssp)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>).</div>
+</td>
+</tr>
+<tr class="altColor" id="i36">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#segment(java.lang.String...)">segment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;segments)</code></th>
+<td class="colLast">
+<div class="block">Append path segments to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i37">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toTemplate()">toTemplate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI template string represented by this URI builder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i38">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied
+ URI to the UriBuilder replacing any existing values for those components.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i39">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing
+ any existing values for those components.</div>
+</td>
+</tr>
+<tr class="altColor" id="i40">
+<td class="colFirst"><code>abstract <a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#userInfo(java.lang.String)">userInfo</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ui)</code></th>
+<td class="colLast">
+<div class="block">Set the URI user-info.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UriBuilder</h4>
+<pre>protected&nbsp;UriBuilder()</pre>
+<div class="block">Protected constructor, use one of the static <code>from<i>Xxx</i>(...)</code>
+ methods to obtain an instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newInstance</h4>
+<pre class="methodSignature">protected static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;newInstance()</pre>
+<div class="block">Creates a new instance of UriBuilder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new instance of UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - a URI that will be used to initialize the UriBuilder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if uri is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromUri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromUri</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromUri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</pre>
+<div class="block">Create a new instance initialized from an existing URI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriTemplate</code> - a URI template that will be used to initialize the UriBuilder, may
+                    contain URI parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if <code>uriTemplate</code> is not a valid URI template or
+                                  is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromLink(javax.ws.rs.core.Link)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromLink</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromLink&#8203;(<a href="Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</pre>
+<div class="block">Create a new instance initialized from a Link.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>link</code> - a Link that will be used to initialize the UriBuilder, only
+             its URI is used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if link is <code>null</code></dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="fromPath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromPath</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromPath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)
+                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Create a new instance representing a relative URI initialized from a
+ URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - a URI path that will be used to initialize the UriBuilder,
+             may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromResource(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromResource</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromResource&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</pre>
+<div class="block">Create a new instance representing a relative URI initialized from a
+ root resource class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - a root resource whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will
+                 be used to initialize the UriBuilder.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource is not annotated with
+                                  <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> or resource is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fromMethod(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromMethod</h4>
+<pre class="methodSignature">public static&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fromMethod&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Create a new instance representing a relative URI initialized from a
+ <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method.
+
+ This method can only be used in cases where there is a single method with the
+ specified name that is annotated with <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the resource containing the method.</dd>
+<dd><code>method</code> - the name of the method whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
+                 used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource or method is <code>null</code>,
+                                  or there is more than or less than one variant of the method annotated with
+                                  <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="clone()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>clone</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;clone()</pre>
+<div class="block">Create a copy of the UriBuilder preserving its state. This is a more
+ efficient means of creating a copy than constructing a new UriBuilder
+ from a URI returned by the <a href="#build(java.lang.Object...)"><code>build(Object...)</code></a> method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><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" class="externalLink">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a copy of the UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing
+ any existing values for those components.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - the URI to copy components from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the <code>uri</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="uri(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>uri</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uri&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</pre>
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied
+ URI to the UriBuilder replacing any existing values for those components.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uriTemplate</code> - a URI template that will be used to initialize the UriBuilder, may
+                    contain URI parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if <code>uriTemplate</code> is not a valid URI template or
+                                  is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="scheme(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>scheme</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;scheme&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;scheme)</pre>
+<div class="block">Set the URI scheme.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>scheme</code> - the URI scheme, may contain URI template parameters.
+               A <code>null</code> value will unset the URI scheme, but will
+               not unset the any scheme-specific-part components.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if scheme is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="schemeSpecificPart(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>schemeSpecificPart</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;schemeSpecificPart&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ssp)</pre>
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>). This
+ method will overwrite any existing
+ values for authority, user-info, host, port and path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ssp</code> - the URI scheme-specific-part, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if ssp cannot be parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="userInfo(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>userInfo</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;userInfo&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ui)</pre>
+<div class="block">Set the URI user-info.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>ui</code> - the URI user-info, may contain URI template parameters.
+           A <code>null</code> value will unset userInfo component of the URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="host(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>host</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;host&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host)</pre>
+<div class="block">Set the URI host.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>host</code> - the URI host, may contain URI template parameters.
+             A <code>null</code> value will unset the host component of the URI, but
+             will not unset other authority component parts
+             (<a href="#userInfo(java.lang.String)"><code>user info</code></a> or <a href="#port(int)"><code>port</code></a>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if host is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="port(int)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>port</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;port&#8203;(int&nbsp;port)</pre>
+<div class="block">Set the URI port.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>port</code> - the URI port, a value of -1 will unset an explicit port.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if port is invalid.</dd>
+</dl>
+</li>
+</ul>
+<a id="replacePath(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replacePath</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replacePath&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Set the URI path. This method will overwrite
+ any existing path and associated matrix parameters.
+ Existing '/' characters are preserved thus a single value can
+ represent multiple URI path segments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path, may contain URI template parameters.
+             A <code>null</code> value will unset the path component of the URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</pre>
+<div class="block">Append path to the existing path.
+ When constructing the final path, a '/' separator will be inserted
+ between the existing path and the supplied path if necessary.
+ Existing '/' characters are preserved thus a single value can
+ represent multiple URI path segments.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>path</code> - the path, may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if path is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource)</pre>
+<div class="block">Append the path from a Path-annotated class to the
+ existing path.
+ When constructing the final path, a '/' separator will be inserted
+ between the existing path and the supplied path if necessary.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - a resource whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
+                 used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource is <code>null</code>, or
+                                  if resource is not annotated with <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.Class,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</pre>
+<div class="block">Append the path from a Path-annotated method to the
+ existing path.
+ When constructing the final path, a '/' separator will be inserted
+ between the existing path and the supplied path if necessary.
+ This method is a convenience shortcut to <code>path(Method)</code>, it
+ can only be used in cases where there is a single method with the
+ specified name that is annotated with <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>resource</code> - the resource containing the method.</dd>
+<dd><code>method</code> - the name of the method whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
+                 used to obtain the path to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if resource or method is <code>null</code>,
+                                  or there is more than or less than one variant of the method annotated with
+                                  <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="path(java.lang.reflect.Method)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>path</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;path&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;method)</pre>
+<div class="block">Append the path from a <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method to the
+ existing path.
+ When constructing the final path, a '/' separator will be inserted
+ between the existing path and the supplied path if necessary.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>method</code> - a method whose <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a> value will be
+               used to obtain the path to append to the existing path.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if method is <code>null</code> or is
+                                  not annotated with a <a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="segment(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>segment</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;segment&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;segments)</pre>
+<div class="block">Append path segments to the existing path.
+ When constructing the final path, a '/' separator will be inserted
+ between the existing path and the first path segment if necessary and
+ each supplied segment will also be separated by '/'.
+ Existing '/' characters are encoded thus a single value can
+ only represent a single URI path segment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>segments</code> - the path segment values, each may contain URI template
+                 parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if segments or any element of segments
+                                  is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="replaceMatrix(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceMatrix</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceMatrix&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;matrix)</pre>
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.
+ This method will overwrite any existing matrix parameters on the current final
+ segment of the current URI path. Note that the matrix parameters
+ are tied to a particular path segment; subsequent addition of path segments
+ will not affect their position in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>matrix</code> - the matrix parameters, may contain URI template parameters.
+               A <code>null</code> value will remove all matrix parameters of the current final segment
+               of the current URI path.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if matrix cannot be parsed.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="matrixParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>matrixParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;matrixParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI path. If multiple values are supplied
+ the parameter will be added once per value. Note that the matrix parameters
+ are tied to a particular path segment; subsequent addition of path segments
+ will not affect their position in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the matrix parameter value(s), each object will be converted.
+               to a <code>String</code> using its <code>toString()</code> method. Stringified
+               values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name or values is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="replaceMatrixParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceMatrixParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceMatrixParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Replace the existing value(s) of a matrix parameter on
+ the current final segment of the URI path. If multiple values are supplied
+ the parameter will be added once per value. Note that the matrix parameters
+ are tied to a particular path segment; subsequent addition of path segments
+ will not affect their position in the URI path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the matrix parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the matrix parameter value(s), each object will be converted.
+               to a <code>String</code> using its <code>toString()</code> method. Stringified
+               values may contain URI template parameters. If <code>values</code> is empty
+               or <code>null</code> then all current values of the parameter are removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="replaceQuery(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceQuery</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceQuery&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;query)</pre>
+<div class="block">Set the URI query string. This method will overwrite any existing query
+ parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>query</code> - the URI query string, may contain URI template parameters.
+              A <code>null</code> value will remove all query parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if query cannot be parsed.</dd>
+</dl>
+</li>
+</ul>
+<a id="queryParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>queryParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;queryParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Append a query parameter to the existing set of query parameters. If
+ multiple values are supplied the parameter will be added once per value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the query parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the query parameter value(s), each object will be converted
+               to a <code>String</code> using its <code>toString()</code> method. Stringified
+               values may contain URI template parameters.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name or values is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="replaceQueryParam(java.lang.String,java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>replaceQueryParam</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;replaceQueryParam&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</pre>
+<div class="block">Replace the existing value(s) of a query parameter. If
+ multiple values are supplied the parameter will be added once per value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the query parameter name, may contain URI template parameters.</dd>
+<dd><code>values</code> - the query parameter value(s), each object will be converted
+               to a <code>String</code> using its <code>toString()</code> method. Stringified
+               values may contain URI template parameters. If <code>values</code> is empty
+               or <code>null</code> then all current values of the parameter are removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if name is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="fragment(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fragment</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;fragment&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fragment)</pre>
+<div class="block">Set the URI fragment.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fragment</code> - the URI fragment, may contain URI template parameters.
+                 A <code>null</code> value will remove any existing fragment.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a>
+ is thrown.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplate(java.lang.String,java.lang.Object,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+                                           boolean&nbsp;encodeSlashInPath)</pre>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.
+
+ In case a <code>null</code> template name or value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a>
+ is thrown.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - value to be used to resolve the template.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in template values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the resolved template name or value is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplateFromEncoded</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplateFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</pre>
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied encoded value.
+
+ A template with a matching name will be replaced by the supplied value.
+ Value is converted to <code>String</code> using its <code>toString()</code> method and is then
+ encoded to match the rules of the URI component to which they pertain.  All % characters in
+ the stringified values that are not followed by two hexadecimal numbers will be encoded.
+
+ In case a <code>null</code> template name or encoded value is entered a <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalArgumentException</code></a>
+ is thrown.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - name of the URI template.</dd>
+<dd><code>value</code> - encoded value to be used to resolve the template.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the resolved template name or encoded value is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.
+
+ A call to the method with an empty parameter map is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name-value map or any of the names or values
+                                  in the map is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplates(java.util.Map,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplates</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplates&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                                            boolean&nbsp;encodeSlashInPath)
+                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.
+
+ A call to the method with an empty parameter map is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in template values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name-value map or any of the names or values
+                                  in the map is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="resolveTemplatesFromEncoded(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolveTemplatesFromEncoded</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;resolveTemplatesFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</pre>
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.
+
+ All templates  with their name matching one of the keys in the supplied map will be replaced
+ by the value in the supplied map. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain.  All % characters in
+ the stringified values that are not followed by two hexadecimal numbers
+ will be encoded.
+
+ A call to the method with an empty parameter map is ignored.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>templateValues</code> - a map of URI template names and their values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the name-value map or any of the names or values
+                                  in the map is <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromMap(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromMap</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</pre>
+<div class="block">Build a URI.
+
+ Any URI template parameters will be replaced by the value in
+ the supplied map. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain.  All <code>'%'</code> characters
+ in the stringified values will be encoded.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.
+ <p>
+ NOTE: By default all <code>'/'</code> characters in the stringified values will be
+ encoded in path templates, i.e. the result is identical to invoking
+ <a href="#buildFromMap(java.util.Map,boolean)"><code>buildFromMap(valueMap, true)</code></a>.
+ To override this behavior use <code>buildFromMap(valueMap, false)</code> instead.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a map of URI template parameter names and values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a template parameter value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#buildFromMap(java.util.Map,boolean)"><code>buildFromMap(java.util.Map, boolean)</code></a>, 
+<a href="#buildFromEncodedMap(java.util.Map)"><code>buildFromEncodedMap(java.util.Map)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromMap(java.util.Map,boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromMap</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values,
+                                 boolean&nbsp;encodeSlashInPath)
+                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                 <a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI.
+
+ Any URI template parameters will be replaced by the value in
+ the supplied map. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain.  All <code>'%'</code> characters
+ in the stringified values will be encoded.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.
+ <p>
+ The <code>encodeSlashInPath</code> parameter may be used to override the default
+ encoding of <code>'/'</code> characters in the stringified template values
+ in cases when the template is part of the URI path component when using
+ the <a href="#buildFromMap(java.util.Map)"><code>buildFromMap(java.util.Map)</code></a> method. If the <code>encodeSlashInPath</code>
+ parameter is set to <code>true</code> (default), the slash (<code>'/'</code>) characters in
+ parameter values will be encoded if the template is placed in the URI path component.
+ If set to <code>false</code> the default encoding behavior is overridden an slash characters
+ in template values will not be encoded when used to substitute path templates.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a map of URI template parameter names and values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in parameter values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a template parameter value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#buildFromMap(java.util.Map)"><code>buildFromMap(java.util.Map)</code></a>, 
+<a href="#buildFromEncodedMap(java.util.Map)"><code>buildFromEncodedMap(java.util.Map)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromEncodedMap(java.util.Map)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromEncodedMap</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromEncodedMap&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)
+                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                        <a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI.
+
+ Any URI template parameters will be replaced by the value in
+ the supplied map. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain.  All % characters in
+ the stringified values that are not followed by two hexadecimal numbers
+ will be encoded.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a map of URI template parameter names and values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a template parameter value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#buildFromMap(java.util.Map)"><code>buildFromMap(java.util.Map)</code></a>, 
+<a href="#buildFromMap(java.util.Map,boolean)"><code>buildFromMap(java.util.Map, boolean)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                          <a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain. All '%' characters
+ in the stringified values will be encoded.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.
+ <p>
+ All instances of the same template parameter
+ will be replaced by the same value that corresponds to the position of the
+ first instance of the template parameter. e.g. the template "{a}/{b}/{a}"
+ with values {"x", "y", "z"} will result in the the URI "x/y/x", <i>not</i>
+ "x/y/z".
+ </p>
+ <p>
+ NOTE: By default all <code>'/'</code> characters in the stringified values will be
+ encoded in path templates, i.e. the result is identical to invoking
+ <a href="#build(java.lang.Object%5B%5D,boolean)"><code>build(Object[], boolean)</code></a> build(values, true)}.
+ To override this behavior use <code>build(values, false)</code> instead.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a list of URI template parameter values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#build(java.lang.Object%5B%5D,boolean)"><code>build(Object[], boolean)</code></a>, 
+<a href="#buildFromEncoded(java.lang.Object...)"><code>buildFromEncoded(Object...)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="build(java.lang.Object[],boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;build&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;values,
+                          boolean&nbsp;encodeSlashInPath)
+                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                          <a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain. All '%' characters
+ in the stringified values will be encoded.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.
+ <p>
+ All instances of the same template parameter
+ will be replaced by the same value that corresponds to the position of the
+ first instance of the template parameter. e.g. the template "{a}/{b}/{a}"
+ with values {"x", "y", "z"} will result in the the URI "x/y/x", <i>not</i>
+ "x/y/z".
+ </p>
+ <p>
+ The <code>encodeSlashInPath</code> parameter may be used to override the default
+ encoding of <code>'/'</code> characters in the stringified template values
+ in cases when the template is part of the URI path component when using
+ the <a href="#build(java.lang.Object...)"><code>build(Object[])</code></a> method. If the <code>encodeSlashInPath</code>
+ parameter is set to <code>true</code> (default), the slash (<code>'/'</code>) characters in
+ parameter values will be encoded if the template is placed in the URI path component.
+ If set to <code>false</code> the default encoding behavior is overridden an slash characters
+ in template values will not be encoded when used to substitute path templates.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a list of URI template parameter values.</dd>
+<dd><code>encodeSlashInPath</code> - if <code>true</code>, the slash (<code>'/'</code>) characters
+                          in parameter values will be encoded if the template
+                          is placed in the URI path component, otherwise the slash
+                          characters will not be encoded in path templates.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#build(java.lang.Object...)"><code>build(Object[])</code></a>, 
+<a href="#buildFromEncoded(java.lang.Object...)"><code>buildFromEncoded(Object...)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="buildFromEncoded(java.lang.Object...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildFromEncoded</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;buildFromEncoded&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)
+                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                     <a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></pre>
+<div class="block">Build a URI.
+ Any URI templates parameters will be replaced with the supplied values in
+ order. Values are converted to <code>String</code> using
+ their <code>toString()</code> method and are then encoded to match the
+ rules of the URI component to which they pertain. All % characters in
+ the stringified values that are not followed by two hexadecimal numbers
+ will be encoded.
+ The state of the builder is unaffected; this method may be called
+ multiple times on the same builder instance.
+ <p>All instances of the same template parameter
+ will be replaced by the same value that corresponds to the position of the
+ first instance of the template parameter. e.g. the template "{a}/{b}/{a}"
+ with values {"x", "y", "z"} will result in the the URI "x/y/x", <i>not</i>
+ "x/y/z".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - a list of URI template parameter values.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI built from the UriBuilder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if there are any URI template parameters
+                                  without a supplied value, or if a value is <code>null</code>.</dd>
+<dd><code><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></code> - if a URI cannot be constructed based on the
+                                  current state of the builder.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#build(java.lang.Object...)"><code>build(Object[])</code></a>, 
+<a href="#build(java.lang.Object%5B%5D,boolean)"><code>build(Object[], boolean)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="toTemplate()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toTemplate</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toTemplate()</pre>
+<div class="block">Get the URI template string represented by this URI builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the URI template string for this URI builder.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilder.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/UriBuilderException.html b/apidocs/2.1.6/javax/ws/rs/core/UriBuilderException.html
new file mode 100644
index 0000000..3c5064d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/UriBuilderException.html
@@ -0,0 +1,349 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>UriBuilderException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriBuilderException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilderException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class UriBuilderException" class="title">Class UriBuilderException</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.RuntimeException</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.UriBuilderException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code></dd>
+</dl>
+<hr>
+<pre>public class <span class="typeNameLabel">UriBuilderException</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a></pre>
+<div class="block">A runtime exception thrown by <a href="UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when
+ a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be constructed based on the current state of the
+ builder.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#javax.ws.rs.core.UriBuilderException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">UriBuilderException</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>UriBuilderException</code> without detail message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">UriBuilderException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg)</code></th>
+<td class="colLast">
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String,java.lang.Throwable)">UriBuilderException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message and cause.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.Throwable)">UriBuilderException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new exception with the specified cause and a detail message
+ of (<code>cause==null ? null : cause.toString()</code>) (which typically contains
+ the class and detail message of cause).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">addSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace()" title="class or interface in java.lang" class="externalLink">fillInStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause()" title="class or interface in java.lang" class="externalLink">getCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage()" title="class or interface in java.lang" class="externalLink">getLocalizedMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage()" title="class or interface in java.lang" class="externalLink">getMessage</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace()" title="class or interface in java.lang" class="externalLink">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed()" title="class or interface in java.lang" class="externalLink">getSuppressed</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="externalLink">initCause</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace()" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="externalLink">printStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="externalLink">setStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException()</pre>
+<div class="block">Creates a new instance of <code>UriBuilderException</code> without detail message.</div>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg)</pre>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>msg</code> - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.String,java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;msg,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs an instance of <code>UriBuilderException</code> with the specified detail message and cause.
+ <p>Note that the detail message associated with cause is not automatically incorporated in this exception's detail message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>msg</code> - the detail message (which is saved for later retrieval by the Throwable.getMessage() method).</dd>
+<dd><code>cause</code> - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value is permitted, and indicates that the cause is nonexistent or unknown.)</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(java.lang.Throwable)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UriBuilderException</h4>
+<pre>public&nbsp;UriBuilderException&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Constructs a new exception with the specified cause and a detail message
+ of (<code>cause==null ? null : cause.toString()</code>) (which typically contains
+ the class and detail message of cause). This constructor is useful
+ for exceptions that are little more than wrappers for other throwables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - the original exception</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriBuilderException.html">Use</a></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">
+<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>Method</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/UriInfo.html b/apidocs/2.1.6/javax/ws/rs/core/UriInfo.html
new file mode 100644
index 0000000..cdaa301
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/UriInfo.html
@@ -0,0 +1,854 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>UriInfo (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UriInfo (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriInfo.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Interface UriInfo" class="title">Interface UriInfo</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">UriInfo</span></pre>
+<div class="block">An injectable interface that provides access to application and request
+ URI information. Relative URIs are relative to the base URI of the
+ application, see <a href="#getBaseUri()"><code>getBaseUri()</code></a>.
+
+ <p>All methods throw <code>java.lang.IllegalStateException</code>
+ if called outside the scope of a request (e.g. from a provider constructor).</p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAbsolutePath()">getAbsolutePath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute path of the request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAbsolutePathBuilder()">getAbsolutePathBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBaseUri()">getBaseUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the base URI of the application.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBaseUriBuilder()">getBaseUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatchedResources()">getMatchedResources</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a read-only list of the currently matched resource class instances.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatchedURIs()">getMatchedURIs</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatchedURIs(boolean)">getMatchedURIs</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get a read-only list of URIs for matched resources.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath()">getPath</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPath(boolean)">getPath</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathParameters(boolean)">getPathParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathSegments()">getPathSegments</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a
+ list of <a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i12">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPathSegments(boolean)">getPathSegments</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a list of
+ <a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i13">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryParameters()">getQueryParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr class="altColor" id="i14">
+<td class="colFirst"><code><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryParameters(boolean)">getQueryParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i15">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestUri()">getRequestUri</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute request URI including any query parameters.</div>
+</td>
+</tr>
+<tr class="altColor" id="i16">
+<td class="colFirst"><code><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRequestUriBuilder()">getRequestUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i17">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#relativize(java.net.URI)">relativize</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Relativize a URI with respect to the current request URI.</div>
+</td>
+</tr>
+<tr class="altColor" id="i18">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resolve(java.net.URI)">resolve</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Resolve a relative URI with respect to the base URI of the application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getPath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath()</pre>
+<div class="block">Get the path of the current request relative to the base URI as a string.
+ All sequences of escaped octets are decoded, equivalent to
+ <a href="#getPath(boolean)"><code>getPath(true)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the relative URI path.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of
+          a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPath(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getPath&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the path of the current request relative to the base URI as a string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets are decoded
+               (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the relative URI path</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of
+          a request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathSegments()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathSegments</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a>&gt;&nbsp;getPathSegments()</pre>
+<div class="block">Get the path of the current request relative to the base URI as a
+ list of <a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>. This method is useful when the
+ path needs to be parsed, particularly when matrix parameters may be
+ present in the path. All sequences of escaped octets in path segments
+ and matrix parameter values are decoded,
+ equivalent to <code>getPathSegments(true)</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable list of <a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>. The matrix parameter
+         map of each path segment is also unmodifiable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>, 
+<a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPathSegments(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathSegments</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a>&gt;&nbsp;getPathSegments&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the path of the current request relative to the base URI as a list of
+ <a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>. This method is useful when the path needs to be parsed,
+ particularly when matrix parameters may be present in the path.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets in path segments
+               and matrix parameter values are decoded (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable list of <a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>. The matrix parameter
+         map of each path segment is also unmodifiable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>, 
+<a href="http://www.w3.org/DesignIssues/MatrixURIs.html">Matrix URIs</a></dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getRequestUri()</pre>
+<div class="block">Get the absolute request URI including any query parameters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the absolute request URI</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request</dd>
+</dl>
+</li>
+</ul>
+<a id="getRequestUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequestUriBuilder</h4>
+<pre class="methodSignature"><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;getRequestUriBuilder()</pre>
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a UriBuilder initialized with the absolute request URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAbsolutePath()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbsolutePath</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getAbsolutePath()</pre>
+<div class="block">Get the absolute path of the request. This includes everything preceding
+ the path (host, port etc) but excludes query parameters.
+ This is a shortcut for <code>uriInfo.getBaseUri().resolve(uriInfo.getPath(false))</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the absolute path of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAbsolutePathBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAbsolutePathBuilder</h4>
+<pre class="methodSignature"><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;getAbsolutePathBuilder()</pre>
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.
+ This includes everything preceding the path (host, port etc) but excludes
+ query parameters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a UriBuilder initialized with the absolute path of the request.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBaseUri()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBaseUri</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;getBaseUri()</pre>
+<div class="block">Get the base URI of the application. URIs of root resource classes
+ are all relative to this base URI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the base URI of the application.</dd>
+</dl>
+</li>
+</ul>
+<a id="getBaseUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBaseUriBuilder</h4>
+<pre class="methodSignature"><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;getBaseUriBuilder()</pre>
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a UriBuilder initialized with the base URI of the application.</dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPathParameters()</pre>
+<div class="block">Get the values of any embedded URI template parameters. All sequences of
+ escaped octets are decoded, equivalent to
+ <a href="#getPathParameters(boolean)"><code>getPathParameters(true)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of parameter names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>, 
+<a href="../PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPathParameters(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPathParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getPathParameters&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the values of any embedded URI template parameters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets are decoded
+               (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of parameter names and values</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>, 
+<a href="../PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryParameters()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getQueryParameters()</pre>
+<div class="block">Get the URI query parameters of the current request. The map keys are the
+ names of the query parameters with any escaped characters decoded. All sequences
+ of escaped octets in parameter names and values are decoded, equivalent to
+ <a href="#getQueryParameters(boolean)"><code>getQueryParameters(true)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of query parameter names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getQueryParameters(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getQueryParameters</h4>
+<pre class="methodSignature"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getQueryParameters&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get the URI query parameters of the current request. The map keys are the
+ names of the query parameters with any escaped characters decoded.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets in parameter
+               names and values are decoded (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an unmodifiable map of query parameter names and values.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a
+          request.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatchedURIs()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatchedURIs</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;&nbsp;getMatchedURIs()</pre>
+<div class="block">Get a read-only list of URIs for matched resources.
+
+ Each entry is a relative URI that matched a resource class, a
+ sub-resource method or a sub-resource locator. All sequences of escaped
+ octets are decoded, equivalent to <code>getMatchedURIs(true)</code>.
+ Entries do not include query parameters but do include matrix parameters
+ if present in the request URI. Entries are ordered in reverse request
+ URI matching order, with the current resource URI first.  E.g. given the
+ following resource classes:
+
+ <pre>&#064;Path("foo")
+ public class FooResource {
+  &#064;GET
+  public String getFoo() {...}
+
+  &#064;Path("bar")
+  public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+  &#064;GET
+  public String getBar() {...}
+ }
+ </pre>
+
+ <p>The values returned by this method based on request uri and where
+ the method is called from are:</p>
+
+ <table border="1">
+ <tr>
+ <th>Request</th>
+ <th>Called from</th>
+ <th>Value(s)</th>
+ </tr>
+ <tr>
+ <td>GET /foo</td>
+ <td>FooResource.getFoo</td>
+ <td>foo</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>FooResource.getBarResource</td>
+ <td>foo/bar, foo</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>BarResource.getBar</td>
+ <td>foo/bar, foo</td>
+ </tr>
+ </table>
+
+ In case the method is invoked prior to the request matching (e.g. from a
+ pre-matching filter), the method returns an empty list.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of URI paths for matched resources.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatchedURIs(boolean)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatchedURIs</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</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" class="externalLink">String</a>&gt;&nbsp;getMatchedURIs&#8203;(boolean&nbsp;decode)</pre>
+<div class="block">Get a read-only list of URIs for matched resources.
+
+ Each entry is a relative URI that matched a resource class, a sub-resource
+ method or a sub-resource locator. Entries do not include query
+ parameters but do include matrix parameters if present in the request URI.
+ Entries are ordered in reverse request URI matching order, with the
+ current resource URI first. See <a href="#getMatchedURIs()"><code>getMatchedURIs()</code></a> for an
+ example.
+
+ In case the method is invoked prior to the request matching (e.g. from a
+ pre-matching filter), the method returns an empty list.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decode</code> - controls whether sequences of escaped octets are decoded
+               (<code>true</code>) or not (<code>false</code>).</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of URI paths for matched resources.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMatchedResources()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMatchedResources</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getMatchedResources()</pre>
+<div class="block">Get a read-only list of the currently matched resource class instances.
+
+ Each entry is a resource class instance that matched the request URI
+ either directly or via a sub-resource method or a sub-resource locator.
+ Entries are ordered according to reverse request URI matching order,
+ with the current resource first. E.g. given the following resource
+ classes:
+
+ <pre>&#064;Path("foo")
+ public class FooResource {
+  &#064;GET
+  public String getFoo() {...}
+
+  &#064;Path("bar")
+  public BarResource getBarResource() {...}
+ }
+
+ public class BarResource {
+  &#064;GET
+  public String getBar() {...}
+ }
+ </pre>
+
+ <p>The values returned by this method based on request uri and where
+ the method is called from are:</p>
+
+ <table border="1">
+ <tr>
+ <th>Request</th>
+ <th>Called from</th>
+ <th>Value(s)</th>
+ </tr>
+ <tr>
+ <td>GET /foo</td>
+ <td>FooResource.getFoo</td>
+ <td>FooResource</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>FooResource.getBarResource</td>
+ <td>FooResource</td>
+ </tr>
+ <tr>
+ <td>GET /foo/bar</td>
+ <td>BarResource.getBar</td>
+ <td>BarResource, FooResource</td>
+ </tr>
+ </table>
+
+ In case the method is invoked prior to the request matching (e.g. from a
+ pre-matching filter), the method returns an empty list.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a read-only list of matched resource class instances.</dd>
+</dl>
+</li>
+</ul>
+<a id="resolve(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>resolve</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;resolve&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block">Resolve a relative URI with respect to the base URI of the application.
+ The resolved URI returned by this method is normalized. If the supplied URI is
+ already resolved, it is just returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - URI to resolve against the base URI of the application.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly resolved URI or supplied URI if already resolved.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="relativize(java.net.URI)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>relativize</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;relativize&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</pre>
+<div class="block"><p>Relativize a URI with respect to the current request URI. Relativization
+ works as follows:
+ <ol>
+ <li>If the URI to relativize is already relative, it is first resolved using
+ <a href="#resolve(java.net.URI)"><code>resolve(java.net.URI)</code></a>.</li>
+ <li>The resulting URI is relativized with respect to the current request
+ URI. If the two URIs do not share a prefix, the URI computed in
+ step 1 is returned.</li>
+ </ol>
+ </p>
+
+ <p>Examples (for base URI <code>http://example.com:8080/app/root/</code>):
+ <br/>
+ <br/><b>Request URI:</b> <code>http://example.com:8080/app/root/a/b/c/resource.html</code>
+ <br/><b>Supplied URI:</b> <code>a/b/c/d/file.txt</code>
+ <br/><b>Returned URI:</b> <code>d/file.txt</code>
+ <br/>
+ <br/><b>Request URI:</b> <code>http://example.com:8080/app/root/a/b/c/resource.html</code>
+ <br/><b>Supplied URI:</b> <code>http://example2.com:9090/app2/root2/a/d/file.txt</code>
+ <br/><b>Returned URI:</b> <code>http://example2.com:9090/app2/root2/a/d/file.txt</code>
+ </p>
+
+ <p>In the second example, the supplied URI is returned given that it is absolute
+ and there is no common prefix between it and the request URI.</p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>uri</code> - URI to relativize against the request URI.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>newly relativized URI.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if called outside the scope of a request.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UriInfo.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Variant.VariantListBuilder.html b/apidocs/2.1.6/javax/ws/rs/core/Variant.VariantListBuilder.html
new file mode 100644
index 0000000..f50c245
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Variant.VariantListBuilder.html
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Variant.VariantListBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Variant.VariantListBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.VariantListBuilder.html">Use</a></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">
+<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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Variant.VariantListBuilder" class="title">Class Variant.VariantListBuilder</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Variant.VariantListBuilder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="Variant.html" title="class in javax.ws.rs.core">Variant</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">Variant.VariantListBuilder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">A builder for a list of representation variants.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">VariantListBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Protected constructor, use the static <code>newInstance</code>
+ method to obtain an instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add()">add</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants,
+ after this method is called the current combination of metadata is emptied.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants
+ (provided the current combination of metadata is not empty) and
+ build a list of representation variants from the current state of
+ the builder.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Set the encoding(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Set the language(s) for this variant.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>abstract <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Set the media type(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>VariantListBuilder</h4>
+<pre>protected&nbsp;VariantListBuilder()</pre>
+<div class="block">Protected constructor, use the static <code>newInstance</code>
+ method to obtain an instance.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;newInstance()</pre>
+<div class="block">Create a new builder instance.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a new builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;build()</pre>
+<div class="block">Add the current combination of metadata to the list of supported variants
+ (provided the current combination of metadata is not empty) and
+ build a list of representation variants from the current state of
+ the builder. After this method is called the builder is reset to
+ an empty state.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a list of representation variants.</dd>
+</dl>
+</li>
+</ul>
+<a id="add()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;add()</pre>
+<div class="block">Add the current combination of metadata to the list of supported variants,
+ after this method is called the current combination of metadata is emptied.
+ <p>
+ If more than one value is supplied for one or more of the variant properties
+ then a variant will be generated for each possible combination. E.g.
+ in the following <code>list</code> would have five (4 + 1) members:
+ </p>
+ <pre>List<Variant> list = VariantListBuilder.newInstance()
+         .languages(Locale.ENGLISH, Locale.FRENCH).encodings("zip", "identity").add()
+         .languages(Locale.GERMAN).mediaTypes(MediaType.TEXT_PLAIN_TYPE).add()
+         .build()</pre>
+ <p>
+ Note that it is not necessary to call the <code>add()</code> method immediately before
+ the build method is called. E.g. the resulting list produced in the example above
+ would be identical to the list produced by the following code:
+ </p>
+ <pre>List<Variant> list = VariantListBuilder.newInstance()
+         .languages(Locale.ENGLISH, Locale.FRENCH).encodings("zip", "identity").add()
+         .languages(Locale.GERMAN).mediaTypes(MediaType.TEXT_PLAIN_TYPE)
+         .build()</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if there is not at least one
+                               mediaType, language or encoding set for the current variant.</dd>
+</dl>
+</li>
+</ul>
+<a id="languages(java.util.Locale...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>languages</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;languages&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</pre>
+<div class="block">Set the language(s) for this variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>languages</code> - the available languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="encodings(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encodings</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;encodings&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</pre>
+<div class="block">Set the encoding(s) for this variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodings</code> - the available encodings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="mediaTypes(javax.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>mediaTypes</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;mediaTypes&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Set the media type(s) for this variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - the available mediaTypes. If specific charsets
+                   are supported they should be included as parameters of the respective
+                   media type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the updated builder.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.VariantListBuilder.html">Use</a></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">
+<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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/Variant.html b/apidocs/2.1.6/javax/ws/rs/core/Variant.html
new file mode 100644
index 0000000..b058205
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/Variant.html
@@ -0,0 +1,673 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Variant (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Variant (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&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>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.core</a></div>
+<h2 title="Class Variant" class="title">Class Variant</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.core.Variant</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public class <span class="typeNameLabel">Variant</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Abstraction for a resource representation variant.
+
+ Contains information about media type, language and encoding of the resource representation.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;languageVariant,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(javax.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">Variant</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ encodings.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</code></th>
+<td class="colLast">
+<div class="block">Compares obj to this variant to see if they are the same
+ considering all property values.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEncoding()">getEncoding</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the encoding of the variant.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguage()">getLanguage</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the language of the variant.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLanguageString()">getLanguageString</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the string representation of the variant language,
+ or <code>null</code> if no language has been set.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the variant.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>int</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Generate hash code from variant properties.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ languages.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>static <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ media types.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant (two-letter ISO-639 code);
+                  may be <code>null</code>.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant (two-letter ISO-639 code);
+                  may be <code>null</code>.</dd>
+<dd><code>country</code> - uppercase two-letter ISO-3166 language code of the variant;
+                  may be <code>null</code> provided <code>language</code> is <code>null</code> too.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;languageVariant,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant (two-letter ISO-639 code);
+                        may be <code>null</code>.</dd>
+<dd><code>country</code> - uppercase two-letter ISO-3166 language code of the variant;
+                        may be <code>null</code> provided <code>language</code> is <code>null</code> too.</dd>
+<dd><code>languageVariant</code> - vendor and browser specific language code of the variant
+                        (see also <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Locale</code></a> class description);
+                        may be <code>null</code> provided <code>language</code> and
+                        <code>country</code> are <code>null</code> too.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="&lt;init&gt;(javax.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Variant</h4>
+<pre>public&nbsp;Variant&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</pre>
+<div class="block">Create a new instance of Variant.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - the media type of the variant - may be <code>null</code>.</dd>
+<dd><code>language</code> - the language of the variant - may be <code>null</code>.</dd>
+<dd><code>encoding</code> - the content encoding of the variant - may be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if all the parameters are <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getLanguage()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguage</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;getLanguage()</pre>
+<div class="block">Get the language of the variant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the language or  <code>null</code> if none set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getLanguageString()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLanguageString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getLanguageString()</pre>
+<div class="block">Get the string representation of the variant language,
+ or <code>null</code> if no language has been set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string representing variant language or <code>null</code>
+         if none set.</dd>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature">public&nbsp;<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get the media type of the variant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the media type or <code>null</code> if none set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEncoding()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEncoding</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getEncoding()</pre>
+<div class="block">Get the encoding of the variant.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the encoding or <code>null</code> if none set.</dd>
+</dl>
+</li>
+</ul>
+<a id="mediaTypes(javax.ws.rs.core.MediaType...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mediaTypes</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;mediaTypes&#8203;(<a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</pre>
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ media types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaTypes</code> - the available mediaTypes. If specific char-sets
+                   are supported they should be included as parameters of the respective
+                   media type.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if mediaTypes is null or
+          contains no elements.</dd>
+</dl>
+</li>
+</ul>
+<a id="languages(java.util.Locale...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>languages</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;languages&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</pre>
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ languages.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>languages</code> - the available languages.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if languages is null or
+          contains no elements.</dd>
+</dl>
+</li>
+</ul>
+<a id="encodings(java.lang.String...)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>encodings</h4>
+<pre class="methodSignature">public static&nbsp;<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;encodings&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</pre>
+<div class="block">Create a <a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ encodings.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>encodings</code> - the available encodings.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the initialized builder.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if encodings is null or
+          contains no elements.</dd>
+</dl>
+</li>
+</ul>
+<a id="hashCode()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
+<div class="block">Generate hash code from variant properties.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the hash code.</dd>
+</dl>
+</li>
+</ul>
+<a id="equals(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;obj)</pre>
+<div class="block">Compares obj to this variant to see if they are the same
+ considering all property values.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>obj</code> - the object to compare to.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the two variants are the same, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Variant.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&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>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/AbstractMultivaluedMap.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/AbstractMultivaluedMap.html
new file mode 100644
index 0000000..30337a4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/AbstractMultivaluedMap.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.AbstractMultivaluedMap (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.AbstractMultivaluedMap (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.AbstractMultivaluedMap" class="title">Uses of Class<br>javax.ws.rs.core.AbstractMultivaluedMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subclasses of <a href="../AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a> in <a href="../package-summary.html">javax.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Application.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Application.html
new file mode 100644
index 0000000..8a08f6f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Application.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Application (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Application (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Application.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Application" class="title">Uses of Class<br>javax.ws.rs.core.Application</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Application.html" title="class in javax.ws.rs.core">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Application.html" title="class in javax.ws.rs.core">Application</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> with parameters of type <a href="../Application.html" title="class in javax.ws.rs.core">Application</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createEndpoint(javax.ws.rs.core.Application,java.lang.Class)">createEndpoint</a></span>&#8203;(<a href="../Application.html" title="class in javax.ws.rs.core">Application</a>&nbsp;application,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;endpointType)</code></th>
+<td class="colLast">
+<div class="block">Create a configured instance of the supplied endpoint type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Application.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/CacheControl.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/CacheControl.html
new file mode 100644
index 0000000..fb1d637
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/CacheControl.html
@@ -0,0 +1,218 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.CacheControl (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.CacheControl (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CacheControl.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.CacheControl" class="title">Uses of Class<br>javax.ws.rs.core.CacheControl</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CacheControl.</span><code><span class="memberNameLink"><a href="../CacheControl.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of CacheControl by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../CacheControl.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Configurable.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Configurable.html
new file mode 100644
index 0000000..6a3e4c1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Configurable.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.Configurable (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.Configurable (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configurable.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.Configurable" class="title">Uses of Interface<br>javax.ws.rs.core.Configurable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subinterfaces of <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/Client.html" title="interface in javax.ws.rs.client">Client</a></span></code></th>
+<td class="colLast">
+<div class="block">Client is the main entry point to the fluent API used to build and execute client
+ requests in order to consume responses returned.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></span></code></th>
+<td class="colLast">
+<div class="block">A resource target identified by the resource URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that implement <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></span></code></th>
+<td class="colLast">
+<div class="block">Main entry point to the client API used to bootstrap <a href="../../client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a>
+ instances.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="../package-summary.html">javax.ws.rs.core</a> with type parameters of type <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;C extends <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Subinterfaces of <a href="../Configurable.html" title="interface in javax.ws.rs.core">Configurable</a> in <a href="../package-summary.html">javax.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></span></code></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="../Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="../../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configurable.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Configuration.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Configuration.html
new file mode 100644
index 0000000..b19c0d9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Configuration.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.Configuration (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.Configuration (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configuration.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.Configuration" class="title">Uses of Interface<br>javax.ws.rs.core.Configuration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the immutable configuration of the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Client.html" title="interface in javax.ws.rs.client">Client</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../../client/ClientBuilder.html#newClient(javax.ws.rs.core.Configuration)">newClient</a></span>&#8203;(<a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;configuration)</code></th>
+<td class="colLast">
+<div class="block">Create a new custom-configured <a href="../../client/Client.html" title="interface in javax.ws.rs.client"><code>Client</code></a> instance using the default client builder
+ implementation class provided by the implementation provider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../../client/ClientBuilder.html" title="class in javax.ws.rs.client">ClientBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientBuilder.</span><code><span class="memberNameLink"><a href="../../client/ClientBuilder.html#withConfig(javax.ws.rs.core.Configuration)">withConfig</a></span>&#8203;(<a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a>&nbsp;config)</code></th>
+<td class="colLast">
+<div class="block">Set the internal configuration state to an externally provided configuration state.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configurable.</span><code><span class="memberNameLink"><a href="../Configurable.html#getConfiguration()">getConfiguration</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a live view of an internal configuration state of this configurable instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Configuration.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Context.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Context.html
new file mode 100644
index 0000000..15565d4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Context.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Context (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Context (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Context.html" title="annotation in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Context" class="title">Uses of Class<br>javax.ws.rs.core.Context</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.Context</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Context.html" title="annotation in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Cookie.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Cookie.html
new file mode 100644
index 0000000..a7b161f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Cookie.html
@@ -0,0 +1,333 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Cookie (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Cookie (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Cookie.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Cookie" class="title">Uses of Class<br>javax.ws.rs.core.Cookie</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return types with arguments of type <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#cookie(javax.ws.rs.core.Cookie)">cookie</a></span>&#8203;(<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Add a cookie to be set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return types with arguments of type <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subclasses of <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a> in <a href="../package-summary.html">javax.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span></code></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NewCookie.</span><code><span class="memberNameLink"><a href="../NewCookie.html#toCookie()">toCookie</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a new instance of a <a href="../Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a> with the same name, value, path,
+ domain and version as this <code>NewCookie</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Cookie.</span><code><span class="memberNameLink"><a href="../Cookie.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>Cookie</code> by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return types with arguments of type <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any cookies that accompanied the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Constructors in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html#%3Cinit%3E(javax.ws.rs.core.Cookie)">NewCookie</a></span>&#8203;(<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance copying the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html#%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,boolean)">NewCookie</a></span>&#8203;(<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         boolean&nbsp;secure)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../NewCookie.html#%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)">NewCookie</a></span>&#8203;(<a href="../Cookie.html" title="class in javax.ws.rs.core">Cookie</a>&nbsp;cookie,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment,
+         int&nbsp;maxAge,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expiry,
+         boolean&nbsp;secure,
+         boolean&nbsp;httpOnly)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance supplementing the information in the supplied cookie.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Cookie.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/EntityTag.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/EntityTag.html
new file mode 100644
index 0000000..00f4b97
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/EntityTag.html
@@ -0,0 +1,279 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.EntityTag (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.EntityTag (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EntityTag.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.EntityTag" class="title">Uses of Class<br>javax.ws.rs.core.EntityTag</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getEntityTag()">getEntityTag</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">EntityTag.</span><code><span class="memberNameLink"><a href="../EntityTag.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>EntityTag</code> by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(java.util.Date,javax.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                     <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(javax.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified(javax.ws.rs.core.EntityTag)">notModified</a></span>&#8203;(<a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#tag(javax.ws.rs.core.EntityTag)">tag</a></span>&#8203;(<a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a response entity tag.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../EntityTag.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Feature.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Feature.html
new file mode 100644
index 0000000..9d4ea62
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Feature.html
@@ -0,0 +1,188 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.Feature (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.Feature (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Feature.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.Feature" class="title">Uses of Interface<br>javax.ws.rs.core.Feature</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Feature.html" title="interface in javax.ws.rs.core">Feature</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Feature.html" title="interface in javax.ws.rs.core">Feature</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Feature.html" title="interface in javax.ws.rs.core">Feature</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#isEnabled(javax.ws.rs.core.Feature)">isEnabled</a></span>&#8203;(<a href="../Feature.html" title="interface in javax.ws.rs.core">Feature</a>&nbsp;feature)</code></th>
+<td class="colLast">
+<div class="block">Check if a particular <a href="../Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance has been previously
+ enabled in the runtime configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Method parameters in <a href="../package-summary.html">javax.ws.rs.core</a> with type arguments of type <a href="../Feature.html" title="interface in javax.ws.rs.core">Feature</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Configuration.</span><code><span class="memberNameLink"><a href="../Configuration.html#isEnabled(java.lang.Class)">isEnabled</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;? extends <a href="../Feature.html" title="interface in javax.ws.rs.core">Feature</a>&gt;&nbsp;featureClass)</code></th>
+<td class="colLast">
+<div class="block">Check if a <a href="../Feature.html" title="interface in javax.ws.rs.core"><code>feature</code></a> instance of <code>featureClass</code> class has been
+ previously enabled in the runtime configuration context.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Feature.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/FeatureContext.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/FeatureContext.html
new file mode 100644
index 0000000..29d44cd
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/FeatureContext.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.FeatureContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.FeatureContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FeatureContext.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.FeatureContext" class="title">Uses of Interface<br>javax.ws.rs.core.FeatureContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">DynamicFeature.</span><code><span class="memberNameLink"><a href="../../container/DynamicFeature.html#configure(javax.ws.rs.container.ResourceInfo,javax.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="../../container/ResourceInfo.html" title="interface in javax.ws.rs.container">ResourceInfo</a>&nbsp;resourceInfo,
+         <a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A callback method called by the runtime during the application
+ deployment to register provider instances or classes in a
+ <a href="../Configuration.html" title="interface in javax.ws.rs.core"><code>runtime configuration</code></a> scope of a particular <a href="../../HttpMethod.html" title="annotation in javax.ws.rs"><code>resource or sub-resource method</code></a>; i.e.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Feature.</span><code><span class="memberNameLink"><a href="../Feature.html#configure(javax.ws.rs.core.FeatureContext)">configure</a></span>&#8203;(<a href="../FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">A call-back method called when the feature is to be enabled in a given
+ runtime configuration scope.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../FeatureContext.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Form.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Form.html
new file mode 100644
index 0000000..606a33d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Form.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Form (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Form (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Form.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Form" class="title">Uses of Class<br>javax.ws.rs.core.Form</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Form.html" title="class in javax.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Form.html" title="class in javax.ws.rs.core">Form</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return types with arguments of type <a href="../Form.html" title="class in javax.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(javax.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../Form.html" title="class in javax.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(javax.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Form.html" title="class in javax.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(javax.ws.rs.core.Form)">form</a></span>&#8203;(<a href="../Form.html" title="class in javax.ws.rs.core">Form</a>&nbsp;form)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Form.html" title="class in javax.ws.rs.core">Form</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Form.html" title="class in javax.ws.rs.core">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Form.html" title="class in javax.ws.rs.core">Form</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../Form.html#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Adds a new value to the specified form parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Form.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/GenericEntity.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/GenericEntity.html
new file mode 100644
index 0000000..1c44f92
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/GenericEntity.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.GenericEntity (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.GenericEntity (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericEntity.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.GenericEntity" class="title">Uses of Class<br>javax.ws.rs.core.GenericEntity</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.GenericEntity</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericEntity.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/GenericType.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/GenericType.html
new file mode 100644
index 0000000..972a294
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/GenericType.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.GenericType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.GenericType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericType.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.GenericType" class="title">Uses of Class<br>javax.ws.rs.core.GenericType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#delete(javax.ws.rs.core.GenericType)">delete</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#get(javax.ws.rs.core.GenericType)">get</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#invoke(javax.ws.rs.core.GenericType)">invoke</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response of the specified
+ generic type back.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.core.GenericType)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#options(javax.ws.rs.core.GenericType)">options</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+    <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity,
+   <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#submit(javax.ws.rs.core.GenericType)">submit</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response of the specified generic type back.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;R&gt;&nbsp;<a href="../../client/RxInvoker.html" title="type parameter in RxInvoker">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RxInvoker.</span><code><span class="memberNameLink"><a href="../../client/RxInvoker.html#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;R&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#trace(javax.ws.rs.core.GenericType)">trace</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;responseType)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">GenericType.</span><code><span class="memberNameLink"><a href="../GenericType.html#forInstance(java.lang.Object)">forInstance</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;instance)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../GenericType.html" title="class in javax.ws.rs.core"><code>generic type</code></a> from a
+ Java <code>instance</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#readEntity(javax.ws.rs.core.GenericType)">readEntity</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#readEntity(javax.ws.rs.core.GenericType,java.lang.annotation.Annotation%5B%5D)">readEntity</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;entityType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Read the message entity input stream as an instance of specified Java type
+ using a <a href="../../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> that supports mapping the
+ message entity stream onto the requested type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a> in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a> with parameters of type <a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../../sse/OutboundSseEvent.Builder.html#data(javax.ws.rs.core.GenericType,java.lang.Object)">data</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and a generic java type of event data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(javax.ws.rs.core.GenericType)">readData</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(javax.ws.rs.core.GenericType,javax.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+        <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../GenericType.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/HttpHeaders.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/HttpHeaders.html
new file mode 100644
index 0000000..a44e371
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/HttpHeaders.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.HttpHeaders (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.HttpHeaders (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpHeaders.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.HttpHeaders" class="title">Uses of Interface<br>javax.ws.rs.core.HttpHeaders</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.HttpHeaders</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../HttpHeaders.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.Builder.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.Builder.html
new file mode 100644
index 0000000..ff1e806
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.Builder.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.Link.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.Link.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.Link.Builder" class="title">Uses of Interface<br>javax.ws.rs.core.Link.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>
+ for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#baseUri(java.lang.String)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI as a string for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#baseUri(java.net.URI)">baseUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set the base URI for resolution of relative URIs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromLink(javax.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to build a link from a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI represented as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUriBuilder(javax.ws.rs.core.UriBuilder)">fromUriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getLinkBuilder(java.lang.String)">getLinkBuilder</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a> for the relation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#link(java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link represented as a string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#link(javax.ws.rs.core.Link)">link</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#param(java.lang.String,java.lang.String)">param</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Set an arbitrary parameter on this link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#rel(java.lang.String)">rel</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a link relation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#title(java.lang.String)">title</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;title)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>title</code> on this link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Convenience method to set a <code>type</code> on this link.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying string representing URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI template for the link being constructed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uriBuilder(javax.ws.rs.core.UriBuilder)">uriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createLinkBuilder()">createLinkBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.JaxbAdapter.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.JaxbAdapter.html
new file mode 100644
index 0000000..b7783d3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.JaxbAdapter.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Link.JaxbAdapter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Link.JaxbAdapter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Link.JaxbAdapter" class="title">Uses of Class<br>javax.ws.rs.core.Link.JaxbAdapter</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.Link.JaxbAdapter</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.JaxbLink.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.JaxbLink.html
new file mode 100644
index 0000000..a61c443
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.JaxbLink.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Link.JaxbLink (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Link.JaxbLink (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Link.JaxbLink" class="title">Uses of Class<br>javax.ws.rs.core.Link.JaxbLink</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#marshal(javax.ws.rs.core.Link)">marshal</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> into a <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#unmarshal(javax.ws.rs.core.Link.JaxbLink)">unmarshal</a></span>&#8203;(<a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="../Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.html
new file mode 100644
index 0000000..dcbe2b7
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Link.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Link (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Link (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Link" class="title">Uses of Class<br>javax.ws.rs.core.Link</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.html" title="class in javax.ws.rs.core">Link</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return types with arguments of type <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../../client/Client.html#invocation(javax.ws.rs.core.Link)">invocation</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build an invocation builder from a link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../../client/Client.html#target(javax.ws.rs.core.Link)">target</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.html" title="class in javax.ws.rs.core">Link</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return types with arguments of type <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as header.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Link.html" title="class in javax.ws.rs.core">Link</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#buildRelativized(java.net.URI,java.lang.Object...)">buildRelativized</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Finish building this link using the supplied values as URI parameters
+ and relativize the result with respect to the supplied URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getLink(java.lang.String)">getLink</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;relation)</code></th>
+<td class="colLast">
+<div class="block">Get the link for the relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#unmarshal(javax.ws.rs.core.Link.JaxbLink)">unmarshal</a></span>&#8203;(<a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a> into a <a href="../Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Simple parser to convert link header string representations into a link.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return types with arguments of type <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getLinks()">getLinks</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the links attached to the message as headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Link.html" title="class in javax.ws.rs.core">Link</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromLink(javax.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromLink(javax.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from a Link.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#link(javax.ws.rs.core.Link)">link</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Initialize builder using another link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#links(javax.ws.rs.core.Link...)">links</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>...&nbsp;links)</code></th>
+<td class="colLast">
+<div class="block">Add one or more link headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.JaxbAdapter.</span><code><span class="memberNameLink"><a href="../Link.JaxbAdapter.html#marshal(javax.ws.rs.core.Link)">marshal</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;v)</code></th>
+<td class="colLast">
+<div class="block">Convert a <a href="../Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> into a <a href="../Link.JaxbLink.html" title="class in javax.ws.rs.core"><code>Link.JaxbLink</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Link.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/MediaType.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/MediaType.html
new file mode 100644
index 0000000..65d2fba
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/MediaType.html
@@ -0,0 +1,821 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.MediaType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.MediaType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MediaType.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.MediaType" class="title">Uses of Class<br>javax.ws.rs.core.MediaType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return types with arguments of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#accept(javax.ws.rs.core.MediaType...)">accept</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Add the accepted response media types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,javax.ws.rs.core.MediaType)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../../client/WebTarget.html#request(javax.ws.rs.core.MediaType...)">request</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;acceptedResponseTypes)</code></th>
+<td class="colLast">
+<div class="block">Start building a request to the targeted web resource and define the accepted
+ response media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return types with arguments of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#setEntity(java.lang.Object,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+         <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set a new message entity, including the attached annotations and the media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Fields in <a href="../package-summary.html">javax.ws.rs.core</a> declared as <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_ATOM_XML_TYPE">APPLICATION_ATOM_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_ATOM_XML">"application/atom+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_FORM_URLENCODED_TYPE">APPLICATION_FORM_URLENCODED_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_JSON_PATCH_JSON_TYPE">APPLICATION_JSON_PATCH_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_JSON_PATCH_JSON">"application/json-patch+json"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_JSON_TYPE">APPLICATION_JSON_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_JSON">"application/json"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_OCTET_STREAM_TYPE">APPLICATION_OCTET_STREAM_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_OCTET_STREAM">"application/octet-stream"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_SVG_XML_TYPE">APPLICATION_SVG_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_SVG_XML">"application/svg+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_XHTML_XML_TYPE">APPLICATION_XHTML_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_XHTML_XML">"application/xhtml+xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#APPLICATION_XML_TYPE">APPLICATION_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#APPLICATION_XML">"application/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#MULTIPART_FORM_DATA_TYPE">MULTIPART_FORM_DATA_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#MULTIPART_FORM_DATA">"multipart/form-data"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#SERVER_SENT_EVENTS_TYPE">SERVER_SENT_EVENTS_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">Server sent events media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#TEXT_HTML_TYPE">TEXT_HTML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#TEXT_HTML">"text/html"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#TEXT_PLAIN_TYPE">TEXT_PLAIN_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#TEXT_PLAIN">"text/plain"</a> media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#TEXT_XML_TYPE">TEXT_XML_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing <a href="../MediaType.html#TEXT_XML">"text/xml"</a> media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#WILDCARD_TYPE">WILDCARD_TYPE</a></span></code></th>
+<td class="colLast">
+<div class="block">A <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> constant representing wildcard <a href="../MediaType.html#WILDCARD">"*/*"</a> media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the request entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the message entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the media type of the variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of <code>MediaType</code> by parsing the supplied string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#withCharset(java.lang.String)">withCharset</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;charset)</code></th>
+<td class="colLast">
+<div class="block">Create a new <code>MediaType</code> instance with the same type, subtype and parameters
+ copied from the original instance and the supplied <a href="../MediaType.html#CHARSET_PARAMETER">"charset"</a> parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return types with arguments of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getAcceptableMediaTypes()">getAcceptableMediaTypes</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a list of media types that are acceptable for the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MediaType.</span><code><span class="memberNameLink"><a href="../MediaType.html#isCompatible(javax.ws.rs.core.MediaType)">isCompatible</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;other)</code></th>
+<td class="colLast">
+<div class="block">Check if this media type is compatible with another media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Set the media type(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,javax.ws.rs.core.MediaType)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#type(javax.ws.rs.core.MediaType)">type</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Constructors in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;country,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;languageVariant,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Variant.html#%3Cinit%3E(javax.ws.rs.core.MediaType,java.util.Locale,java.lang.String)">Variant</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of Variant.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/InterceptorContext.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get media type of HTTP entity.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> with parameters of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../ext/ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../../ext/Providers.html#getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)">getContextResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                  <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../../ext/Providers.html#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyReader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../../ext/Providers.html#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyWriter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default long</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getSize</a></span>&#8203;(<a href="../../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of
+ the serialized form of <code>t</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyReader.html#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">isReadable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+          <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a
+ particular type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">isWriteable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+           <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/InterceptorContext.html#setMediaType(javax.ws.rs.core.MediaType)">setMediaType</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Update media type of HTTP entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="../../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a> in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a> that return <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/OutboundSseEvent.html#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../sse/package-summary.html">javax.ws.rs.sse</a> with parameters of type <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../../sse/OutboundSseEvent.Builder.html#mediaType(javax.ws.rs.core.MediaType)">mediaType</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set the <a href="../MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(java.lang.Class,javax.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;messageType,
+        <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given Java type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">InboundSseEvent.</span><code><span class="memberNameLink"><a href="../../sse/InboundSseEvent.html#readData(javax.ws.rs.core.GenericType,javax.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="../GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+        <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MediaType.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/MultivaluedHashMap.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/MultivaluedHashMap.html
new file mode 100644
index 0000000..02586c7
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/MultivaluedHashMap.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.MultivaluedHashMap (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.MultivaluedHashMap (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedHashMap.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.MultivaluedHashMap" class="title">Uses of Class<br>javax.ws.rs.core.MultivaluedHashMap</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.MultivaluedHashMap</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedHashMap.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/MultivaluedMap.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/MultivaluedMap.html
new file mode 100644
index 0000000..edf79c8
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/MultivaluedMap.html
@@ -0,0 +1,508 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.MultivaluedMap (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.MultivaluedMap (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.MultivaluedMap" class="title">Uses of Interface<br>javax.ws.rs.core.MultivaluedMap</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;<a href="../Form.html" title="class in javax.ws.rs.core">Form</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#form(javax.ws.rs.core.MultivaluedMap)">form</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;formData)</code></th>
+<td class="colLast">
+<div class="block">Create an <a href="../MediaType.html#APPLICATION_FORM_URLENCODED">"application/x-www-form-urlencoded"</a>
+ form entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../client/Invocation.Builder.html" title="interface in javax.ws.rs.client">Invocation.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.Builder.</span><code><span class="memberNameLink"><a href="../../client/Invocation.Builder.html#headers(javax.ws.rs.core.MultivaluedMap)">headers</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable request headers multivalued map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the mutable response headers multivalued map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a string view of header values associated with the message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="../package-summary.html">javax.ws.rs.core</a> that implement <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</span></code></th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../Form.html#asMap()">asMap</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns multivalued map representation of the form.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their object values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">PathSegment.</span><code><span class="memberNameLink"><a href="../PathSegment.html#getMatrixParameters()">getMatrixParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a map of the matrix parameters associated with the path segment.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getMetadata()">getMetadata</a></span>()</code></th>
+<td class="colLast">
+<div class="block">See <a href="../Response.html#getHeaders()"><code>Response.getHeaders()</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathParameters()">getPathParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathParameters(boolean)">getPathParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the values of any embedded URI template parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getQueryParameters()">getQueryParameters</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getQueryParameters(boolean)">getQueryParameters</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the URI query parameters of the current request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">HttpHeaders.</span><code><span class="memberNameLink"><a href="../HttpHeaders.html#getRequestHeaders()">getRequestHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the values of HTTP request headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getStringHeaders()">getStringHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get view of the response headers and their string values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AbstractMultivaluedMap.</span><code><span class="memberNameLink"><a href="../AbstractMultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="../AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">K</a>,&#8203;<a href="../AbstractMultivaluedMap.html" title="type parameter in AbstractMultivaluedMap">V</a>&gt;&nbsp;omap)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MultivaluedMap.</span><code><span class="memberNameLink"><a href="../MultivaluedMap.html#equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)">equalsIgnoreValueOrder</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="../MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,&#8203;<a href="../MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code></th>
+<td class="colLast">
+<div class="block">Compare the specified map with this map for equality modulo the order
+ of values for each key.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#replaceAll(javax.ws.rs.core.MultivaluedMap)">replaceAll</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Constructors in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Form.html#%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)">Form</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;store)</code></th>
+<td class="colLast">
+<div class="block">Create a new form data instance and register a custom underlying parameter store.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../MultivaluedHashMap.html#%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)">MultivaluedHashMap</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;? extends <a href="../MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;? extends <a href="../MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt;&nbsp;map)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new multivalued hash map with the same mappings as the
+ specified <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/ReaderInterceptorContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptorContext.</span><code><span class="memberNameLink"><a href="../../ext/WriterInterceptorContext.html#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> with parameters of type <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyReader.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="../../ext/MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">MessageBodyWriter.</span><code><span class="memberNameLink"><a href="../../ext/MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="../../ext/MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/NewCookie.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/NewCookie.html
new file mode 100644
index 0000000..1f4d582
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/NewCookie.html
@@ -0,0 +1,269 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.NewCookie (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.NewCookie (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NewCookie.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.NewCookie" class="title">Uses of Class<br>javax.ws.rs.core.NewCookie</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return types with arguments of type <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return types with arguments of type <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">NewCookie.</span><code><span class="memberNameLink"><a href="../NewCookie.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of NewCookie by parsing the supplied string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return types with arguments of type <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getCookies()">getCookies</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get any new cookies set on the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cookie(javax.ws.rs.core.NewCookie...)">cookie</a></span>&#8203;(<a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>...&nbsp;cookies)</code></th>
+<td class="colLast">
+<div class="block">Add cookies to the response message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NewCookie.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/NoContentException.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/NoContentException.html
new file mode 100644
index 0000000..ca794bd
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/NoContentException.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.NoContentException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.NoContentException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoContentException.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.NoContentException" class="title">Uses of Class<br>javax.ws.rs.core.NoContentException</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.NoContentException</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../NoContentException.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/PathSegment.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/PathSegment.html
new file mode 100644
index 0000000..98188c1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/PathSegment.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.PathSegment (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.PathSegment (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathSegment.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.PathSegment" class="title">Uses of Interface<br>javax.ws.rs.core.PathSegment</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return types with arguments of type <a href="../PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathSegments()">getPathSegments</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a
+ list of <a href="../PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getPathSegments(boolean)">getPathSegments</a></span>&#8203;(boolean&nbsp;decode)</code></th>
+<td class="colLast">
+<div class="block">Get the path of the current request relative to the base URI as a list of
+ <a href="../PathSegment.html" title="interface in javax.ws.rs.core"><code>PathSegment</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../PathSegment.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Request.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Request.html
new file mode 100644
index 0000000..2a9ca21
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Request.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.Request (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.Request (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Request.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.Request" class="title">Uses of Interface<br>javax.ws.rs.core.Request</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Request.html" title="interface in javax.ws.rs.core">Request</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Request.html" title="interface in javax.ws.rs.core">Request</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../Request.html" title="interface in javax.ws.rs.core">Request</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Request.html" title="interface in javax.ws.rs.core">Request</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getRequest()">getRequest</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable request information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Request.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.ResponseBuilder.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.ResponseBuilder.html
new file mode 100644
index 0000000..771ee49
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.ResponseBuilder.html
@@ -0,0 +1,596 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Response.ResponseBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Response.ResponseBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Response.ResponseBuilder" class="title">Uses of Class<br>javax.ws.rs.core.Response.ResponseBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#accepted()">accepted</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#accepted(java.lang.Object)">accepted</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an ACCEPTED status that contains
+ a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#allow(java.lang.String...)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#allow(java.util.Set)">allow</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</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" class="externalLink">String</a>&gt;&nbsp;methods)</code></th>
+<td class="colLast">
+<div class="block">Set the list of allowed methods for the resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cacheControl(javax.ws.rs.core.CacheControl)">cacheControl</a></span>&#8203;(<a href="../CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a>&nbsp;cacheControl)</code></th>
+<td class="colLast">
+<div class="block">Set the cache control data of the message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#clone()">clone</a></span>()</code></th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#contentLocation(java.net.URI)">contentLocation</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the content location.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#cookie(javax.ws.rs.core.NewCookie...)">cookie</a></span>&#8203;(<a href="../NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a>...&nbsp;cookies)</code></th>
+<td class="colLast">
+<div class="block">Add cookies to the response message.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#created(java.net.URI)">created</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a created resource, set the location
+ header using the supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#encoding(java.lang.String)">encoding</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;encoding)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity content encoding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#entity(java.lang.Object)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#entity(java.lang.Object,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity in the builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions()">evaluatePreconditions</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions for a resource that does not currently
+ exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(java.util.Date)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(java.util.Date,javax.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified,
+                     <a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#evaluatePreconditions(javax.ws.rs.core.EntityTag)">evaluatePreconditions</a></span>&#8203;(<a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;eTag)</code></th>
+<td class="colLast">
+<div class="block">Evaluate request preconditions based on the passed in value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#expires(java.util.Date)">expires</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;expires)</code></th>
+<td class="colLast">
+<div class="block">Set the response expiration date.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#fromResponse(javax.ws.rs.core.Response)">fromResponse</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an
+ existing Response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#header(java.lang.String,java.lang.Object)">header</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Add an arbitrary header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#language(java.lang.String)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#language(java.util.Locale)">language</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>&nbsp;language)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#lastModified(java.util.Date)">lastModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util" class="externalLink">Date</a>&nbsp;lastModified)</code></th>
+<td class="colLast">
+<div class="block">Set the response entity last modification date.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#link(java.lang.String,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#link(java.net.URI,java.lang.String)">link</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;rel)</code></th>
+<td class="colLast">
+<div class="block">Add a link header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#links(javax.ws.rs.core.Link...)">links</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>...&nbsp;links)</code></th>
+<td class="colLast">
+<div class="block">Add one or more link headers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#location(java.net.URI)">location</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Set the location.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#noContent()">noContent</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for an empty response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notAcceptable(java.util.List)">notAcceptable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified()">notModified</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified(java.lang.String)">notModified</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status
+ and a strong entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notModified(javax.ws.rs.core.EntityTag)">notModified</a></span>&#8203;(<a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with a not-modified status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok()">ok</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an OK status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,java.lang.String)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,javax.ws.rs.core.MediaType)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,javax.ws.rs.core.Variant)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#replaceAll(javax.ws.rs.core.MultivaluedMap)">replaceAll</a></span>&#8203;(<a href="../MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;headers)</code></th>
+<td class="colLast">
+<div class="block">Replaces all existing headers with the newly supplied headers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#seeOther(java.net.URI)">seeOther</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a redirection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#serverError()">serverError</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with an server error status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(javax.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(javax.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(int)">status</a></span>&#8203;(int&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(int,java.lang.String)">status</a></span>&#8203;(int&nbsp;status,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;reasonPhrase)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status and reason phrase.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(javax.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(javax.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#tag(java.lang.String)">tag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a strong response entity tag.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#tag(javax.ws.rs.core.EntityTag)">tag</a></span>&#8203;(<a href="../EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a>&nbsp;tag)</code></th>
+<td class="colLast">
+<div class="block">Set a response entity tag.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#temporaryRedirect(java.net.URI)">temporaryRedirect</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a temporary redirection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#type(java.lang.String)">type</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#type(javax.ws.rs.core.MediaType)">type</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Set the message entity media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variant(javax.ws.rs.core.Variant)">variant</a></span>&#8203;(<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Set message entity representation metadata.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(java.util.List)">variants</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(javax.ws.rs.core.Variant...)">variants</a></span>&#8203;(<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>...&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createResponseBuilder()">createResponseBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.Status.Family.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.Status.Family.html
new file mode 100644
index 0000000..6cad9d4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.Status.Family.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Response.Status.Family (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Response.Status.Family (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Response.Status.Family" class="title">Uses of Class<br>javax.ws.rs.core.Response.Status.Family</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.Family.</span><code><span class="memberNameLink"><a href="../Response.Status.Family.html#familyOf(int)">familyOf</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Get the response status family for the status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.StatusType.</span><code><span class="memberNameLink"><a href="../Response.StatusType.html#getFamily()">getFamily</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the class of status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.Family.</span><code><span class="memberNameLink"><a href="../Response.Status.Family.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.Family.</span><code><span class="memberNameLink"><a href="../Response.Status.Family.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.Family.html" title="enum in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.Status.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.Status.html
new file mode 100644
index 0000000..5a6f1aa
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.Status.html
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Response.Status (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Response.Status (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.html" title="enum in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Response.Status" class="title">Uses of Class<br>javax.ws.rs.core.Response.Status</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> in <a href="../../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Constructors in <a href="../../package-summary.html">javax.ws.rs</a> with parameters of type <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status)">ClientErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.net.URI)">RedirectionException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;location)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status)">ServerErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with a the supplied message, root cause and HTTP status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message and HTTP status.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, HTTP status code
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(javax.ws.rs.core.Response.Status)">WebApplicationException</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied HTTP status
+ and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#fromStatusCode(int)">fromStatusCode</a></span>&#8203;(int&nbsp;statusCode)</code></th>
+<td class="colLast">
+<div class="block">Convert a numerical status code into the corresponding Status.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.StatusType.</span><code><span class="memberNameLink"><a href="../Response.StatusType.html#toEnum()">toEnum</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the this Status Type as a <a href="../Response.Status.html" title="enum in javax.ws.rs.core"><code>Response.Status</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>[]</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.Status.</span><code><span class="memberNameLink"><a href="../Response.Status.html#values()">values</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(javax.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(javax.ws.rs.core.Response.Status)">status</a></span>&#8203;(<a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.Status.html" title="enum in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.StatusType.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.StatusType.html
new file mode 100644
index 0000000..9f894c2
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.StatusType.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.Response.StatusType (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.Response.StatusType (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.Response.StatusType" class="title">Uses of Interface<br>javax.ws.rs.core.Response.StatusType</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientResponseContext.</span><code><span class="memberNameLink"><a href="../../client/ClientResponseContext.html#setStatusInfo(javax.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerResponseContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerResponseContext.html#setStatusInfo(javax.ws.rs.core.Response.StatusType)">setStatusInfo</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;statusInfo)</code></th>
+<td class="colLast">
+<div class="block">Set the complete status information (status code and reason phrase) associated
+ with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="../package-summary.html">javax.ws.rs.core</a> that implement <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></span></code></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#getStatusInfo()">getStatusInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the complete status information associated with the response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#status(javax.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Set the status on the ResponseBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#status(javax.ws.rs.core.Response.StatusType)">status</a></span>&#8203;(<a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>&nbsp;status)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder with the supplied status.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.StatusType.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.html
new file mode 100644
index 0000000..1147499
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Response.html
@@ -0,0 +1,962 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Response (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Response (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Response" class="title">Uses of Class<br>javax.ws.rs.core.Response</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in javax.ws.rs.core">Response</a> in <a href="../../package-summary.html">javax.ws.rs</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../package-summary.html">javax.ws.rs</a> that return <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebApplicationException.</span><code><span class="memberNameLink"><a href="../../WebApplicationException.html#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Constructors in <a href="../../package-summary.html">javax.ws.rs</a> with parameters of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(javax.ws.rs.core.Response)">BadRequestException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../BadRequestException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">BadRequestException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new bad client request exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ClientErrorException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ClientErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ClientErrorException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new client error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                  <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ForbiddenException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ForbiddenException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ForbiddenException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "forbidden" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                            <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response)">InternalServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../InternalServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">InternalServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new internal server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotAcceptableException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAcceptableException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAcceptableException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "request not acceptable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                   <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotAllowedException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAllowedException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAllowedException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new method not allowed exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                      <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotAuthorizedException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotAuthorizedException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotAuthorizedException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not authorized" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                 <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotFoundException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotFoundException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotFoundException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "not found" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                     <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(javax.ws.rs.core.Response)">NotSupportedException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../NotSupportedException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">NotSupportedException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new unsupported media type exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../RedirectionException.html#%3Cinit%3E(javax.ws.rs.core.Response)">RedirectionException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new redirection exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                    <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServerErrorException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ServerErrorException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new server error exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(javax.ws.rs.core.Response)">ServiceUnavailableException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../ServiceUnavailableException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ServiceUnavailableException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Construct a new "service unavailable" exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied message, root cause and response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                       <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied message and response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause,
+                       <a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance with the supplied root cause, response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../WebApplicationException.html#%3Cinit%3E(javax.ws.rs.core.Response)">WebApplicationException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Construct a new instance using the supplied response
+ and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in javax.ws.rs.core">Response</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ResponseProcessingException.</span><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#getResponse()">getResponse</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the HTTP response for which the processing has failed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#invoke()">invoke</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Synchronously invoke the request and receive a response back.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request synchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/SyncInvoker.html#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request synchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return types with arguments of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#delete()">delete</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP DELETE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#delete()">delete</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#get()">get</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP GET method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#get()">get</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#head()">head</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#head(javax.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="../../client/InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#head()">head</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke an arbitrary method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#method(java.lang.String,javax.ws.rs.client.Entity)">method</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+      <a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#options()">options</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP OPTIONS method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#options()">options</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP POST method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#post(javax.ws.rs.client.Entity)">post</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP PUT method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#put(javax.ws.rs.client.Entity)">put</a></span>&#8203;(<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;?&gt;&nbsp;entity)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Invocation.</span><code><span class="memberNameLink"><a href="../../client/Invocation.html#submit()">submit</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Submit the request for an asynchronous invocation and receive a future
+ response back.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#trace()">trace</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP TRACE method for the current request asynchronously.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">CompletionStageRxInvoker.</span><code><span class="memberNameLink"><a href="../../client/CompletionStageRxInvoker.html#trace()">trace</a></span>()</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ClientRequestContext.</span><code><span class="memberNameLink"><a href="../../client/ClientRequestContext.html#abortWith(javax.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Method parameters in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with type arguments of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">Future</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">AsyncInvoker.</span><code><span class="memberNameLink"><a href="../../client/AsyncInvoker.html#head(javax.ws.rs.client.InvocationCallback)">head</a></span>&#8203;(<a href="../../client/InvocationCallback.html" title="interface in javax.ws.rs.client">InvocationCallback</a>&lt;<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&gt;&nbsp;callback)</code></th>
+<td class="colLast">
+<div class="block">Invoke HTTP HEAD method for the current request asynchronously.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Constructors in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String)">ResponseProcessingException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime processing exception with the specified detail
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;message,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime response processing exception with the specified detail
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../../client/ResponseProcessingException.html#%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)">ResponseProcessingException</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;cause)</code></th>
+<td class="colLast">
+<div class="block">Constructs a new runtime response processing exception
+ for a specific <a href="../Response.html" title="class in javax.ws.rs.core"><code>response</code></a> with the specified cause
+ and a detail message of <code>(cause==null ? null : cause.toString())</code>
+ (which typically contains the class and detail message of <code>cause</code>).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in javax.ws.rs.core">Response</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#abortWith(javax.ws.rs.core.Response)">abortWith</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Abort the filter chain with a response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in javax.ws.rs.core">Response</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a Response instance from the current ResponseBuilder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#fromResponse(javax.ws.rs.core.Response)">fromResponse</a></span>&#8203;(<a href="../Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;response)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder by performing a shallow copy of an
+ existing Response.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Response.html" title="class in javax.ws.rs.core">Response</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../Response.html" title="class in javax.ws.rs.core">Response</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ExceptionMapper.</span><code><span class="memberNameLink"><a href="../../ext/ExceptionMapper.html#toResponse(E)">toResponse</a></span>&#8203;(<a href="../../ext/ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a>&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Map an exception to a <a href="../Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Response.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/SecurityContext.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/SecurityContext.html
new file mode 100644
index 0000000..b757729
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/SecurityContext.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.SecurityContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.SecurityContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SecurityContext.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.SecurityContext" class="title">Uses of Interface<br>javax.ws.rs.core.SecurityContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getSecurityContext()">getSecurityContext</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the injectable security context information for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> with parameters of type <a href="../SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#setSecurityContext(javax.ws.rs.core.SecurityContext)">setSecurityContext</a></span>&#8203;(<a href="../SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Set a new injectable security context information for the current request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SecurityContext.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/StreamingOutput.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/StreamingOutput.html
new file mode 100644
index 0000000..606b612
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/StreamingOutput.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.StreamingOutput (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.StreamingOutput (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StreamingOutput.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.StreamingOutput" class="title">Uses of Interface<br>javax.ws.rs.core.StreamingOutput</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.core.StreamingOutput</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../StreamingOutput.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/UriBuilder.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/UriBuilder.html
new file mode 100644
index 0000000..43e1e69
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/UriBuilder.html
@@ -0,0 +1,564 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.UriBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.UriBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilder.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.UriBuilder" class="title">Uses of Class<br>javax.ws.rs.core.UriBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WebTarget.</span><code><span class="memberNameLink"><a href="../../client/WebTarget.html#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the URI builder initialized with the <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> of the current
+ resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Client.</span><code><span class="memberNameLink"><a href="../../client/Client.html#target(javax.ws.rs.core.UriBuilder)">target</a></span>&#8203;(<a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Build a new web resource target.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#clone()">clone</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a copy of the UriBuilder preserving its state.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fragment(java.lang.String)">fragment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;fragment)</code></th>
+<td class="colLast">
+<div class="block">Set the URI fragment.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromLink(javax.ws.rs.core.Link)">fromLink</a></span>&#8203;(<a href="../Link.html" title="class in javax.ws.rs.core">Link</a>&nbsp;link)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from a Link.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromMethod(java.lang.Class,java.lang.String)">fromMethod</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a
+ <a href="../../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromPath(java.lang.String)">fromPath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a
+ URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromResource(java.lang.Class)">fromResource</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance representing a relative URI initialized from a
+ root resource class.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromUri(java.lang.String)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#fromUri(java.net.URI)">fromUri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Create a new instance initialized from an existing URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getAbsolutePathBuilder()">getAbsolutePathBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute path of the request in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getBaseUriBuilder()">getBaseUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the base URI of the application in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriInfo.</span><code><span class="memberNameLink"><a href="../UriInfo.html#getRequestUriBuilder()">getRequestUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the absolute request URI in the form of a UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#getUriBuilder()">getUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Convenience method that returns a <a href="../UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>
+ initialized with this link's underlying URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#host(java.lang.String)">host</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;host)</code></th>
+<td class="colLast">
+<div class="block">Set the URI host.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#matrixParam(java.lang.String,java.lang.Object...)">matrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a matrix parameter to the existing set of matrix parameters of
+ the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Creates a new instance of UriBuilder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.Class)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated class to the
+ existing path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.Class,java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;resource,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a Path-annotated method to the
+ existing path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.reflect.Method)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Method</a>&nbsp;method)</code></th>
+<td class="colLast">
+<div class="block">Append the path from a <a href="../../Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>-annotated method to the
+ existing path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#path(java.lang.String)">path</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Append path to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#port(int)">port</a></span>&#8203;(int&nbsp;port)</code></th>
+<td class="colLast">
+<div class="block">Set the URI port.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#queryParam(java.lang.String,java.lang.Object...)">queryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Append a query parameter to the existing set of query parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceMatrix(java.lang.String)">replaceMatrix</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;matrix)</code></th>
+<td class="colLast">
+<div class="block">Set the matrix parameters of the current final segment of the current URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceMatrixParam(java.lang.String,java.lang.Object...)">replaceMatrixParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a matrix parameter on
+ the current final segment of the URI path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replacePath(java.lang.String)">replacePath</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;path)</code></th>
+<td class="colLast">
+<div class="block">Set the URI path.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceQuery(java.lang.String)">replaceQuery</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;query)</code></th>
+<td class="colLast">
+<div class="block">Set the URI query string.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#replaceQueryParam(java.lang.String,java.lang.Object...)">replaceQueryParam</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Replace the existing value(s) of a query parameter.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplate(java.lang.String,java.lang.Object,boolean)">resolveTemplate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value,
+               boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplateFromEncoded(java.lang.String,java.lang.Object)">resolveTemplateFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Resolve a URI template with a given <code>name</code> in this <code>UriBuilder</code> instance
+ using a supplied encoded value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplates(java.util.Map)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplates(java.util.Map,boolean)">resolveTemplates</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues,
+                boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#resolveTemplatesFromEncoded(java.util.Map)">resolveTemplatesFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;templateValues)</code></th>
+<td class="colLast">
+<div class="block">Resolve one or more URI templates in this <code>UriBuilder</code> instance using supplied
+ name-value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#scheme(java.lang.String)">scheme</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;scheme)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#schemeSpecificPart(java.lang.String)">schemeSpecificPart</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ssp)</code></th>
+<td class="colLast">
+<div class="block">Set the URI scheme-specific-part (see <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a>).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#segment(java.lang.String...)">segment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;segments)</code></th>
+<td class="colLast">
+<div class="block">Append path segments to the existing path.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#uri(java.lang.String)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;uriTemplate)</code></th>
+<td class="colLast">
+<div class="block">Parses the <code>uriTemplate</code> string and copies the parsed components of the supplied
+ URI to the UriBuilder replacing any existing values for those components.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#uri(java.net.URI)">uri</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a>&nbsp;uri)</code></th>
+<td class="colLast">
+<div class="block">Copies the non-null components of the supplied URI to the UriBuilder replacing
+ any existing values for those components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#userInfo(java.lang.String)">userInfo</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;ui)</code></th>
+<td class="colLast">
+<div class="block">Set the URI user-info.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.</span><code><span class="memberNameLink"><a href="../Link.html#fromUriBuilder(javax.ws.rs.core.UriBuilder)">fromUriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance initialized from a URI builder.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Link.Builder.</span><code><span class="memberNameLink"><a href="../Link.Builder.html#uriBuilder(javax.ws.rs.core.UriBuilder)">uriBuilder</a></span>&#8203;(<a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;uriBuilder)</code></th>
+<td class="colLast">
+<div class="block">Set underlying URI builder representing the URI template for the link being constructed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createUriBuilder()">createUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilder.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/UriBuilderException.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/UriBuilderException.html
new file mode 100644
index 0000000..590f640
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/UriBuilderException.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.UriBuilderException (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.UriBuilderException (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilderException.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.UriBuilderException" class="title">Uses of Class<br>javax.ws.rs.core.UriBuilderException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that throw <a href="../UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#build(java.lang.Object...)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#build(java.lang.Object%5B%5D,boolean)">build</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]&nbsp;values,
+     boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI, using the supplied values in order to replace any URI
+ template parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#buildFromEncoded(java.lang.Object...)">buildFromEncoded</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#buildFromEncodedMap(java.util.Map)">buildFromEncodedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink">URI</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">UriBuilder.</span><code><span class="memberNameLink"><a href="../UriBuilder.html#buildFromMap(java.util.Map,boolean)">buildFromMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</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" class="externalLink">String</a>,&#8203;?&gt;&nbsp;values,
+            boolean&nbsp;encodeSlashInPath)</code></th>
+<td class="colLast">
+<div class="block">Build a URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriBuilderException.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/UriInfo.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/UriInfo.html
new file mode 100644
index 0000000..2679562
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/UriInfo.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.core.UriInfo (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.core.UriInfo (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriInfo.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.core.UriInfo" class="title">Uses of Interface<br>javax.ws.rs.core.UriInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<h3>Uses of <a href="../UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a> in <a href="../../container/package-summary.html">javax.ws.rs.container</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../container/package-summary.html">javax.ws.rs.container</a> that return <a href="../UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ContainerRequestContext.</span><code><span class="memberNameLink"><a href="../../container/ContainerRequestContext.html#getUriInfo()">getUriInfo</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get request URI information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../UriInfo.html" title="interface in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Variant.VariantListBuilder.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Variant.VariantListBuilder.html
new file mode 100644
index 0000000..fd346a0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Variant.VariantListBuilder.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Variant.VariantListBuilder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Variant.VariantListBuilder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Variant.VariantListBuilder" class="title">Uses of Class<br>javax.ws.rs.core.Variant.VariantListBuilder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#add()">add</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants,
+ after this method is called the current combination of metadata is emptied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ encodings.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#encodings(java.lang.String...)">encodings</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>...&nbsp;encodings)</code></th>
+<td class="colLast">
+<div class="block">Set the encoding(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ languages.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#languages(java.util.Locale...)">languages</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html?is-external=true" title="class or interface in java.util" class="externalLink">Locale</a>...&nbsp;languages)</code></th>
+<td class="colLast">
+<div class="block">Set the language(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.</span><code><span class="memberNameLink"><a href="../Variant.html#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Create a <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a> initialized with a set of supported
+ media types.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#mediaTypes(javax.ws.rs.core.MediaType...)">mediaTypes</a></span>&#8203;(<a href="../MediaType.html" title="class in javax.ws.rs.core">MediaType</a>...&nbsp;mediaTypes)</code></th>
+<td class="colLast">
+<div class="block">Set the media type(s) for this variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#newInstance()">newInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new builder instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a> in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../ext/package-summary.html">javax.ws.rs.ext</a> that return <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../../ext/RuntimeDelegate.html#createVariantListBuilder()">createVariantListBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/class-use/Variant.html b/apidocs/2.1.6/javax/ws/rs/core/class-use/Variant.html
new file mode 100644
index 0000000..1565f80
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/class-use/Variant.html
@@ -0,0 +1,317 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.core.Variant (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.core.Variant (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.core.Variant" class="title">Uses of Class<br>javax.ws.rs.core.Variant</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a> in <a href="../../client/package-summary.html">javax.ws.rs.client</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> that return <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#getVariant()">getVariant</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get entity <a href="../Variant.html" title="class in javax.ws.rs.core"><code>variant</code></a> information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../../client/package-summary.html">javax.ws.rs.client</a> with parameters of type <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,javax.ws.rs.core.Variant)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="../../client/Entity.html" title="class in javax.ws.rs.client">Entity</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Entity.</span><code><span class="memberNameLink"><a href="../../client/Entity.html#entity(T,javax.ws.rs.core.Variant,java.lang.annotation.Annotation%5B%5D)">entity</a></span>&#8203;(T&nbsp;entity,
+      <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Create an entity using a supplied content media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<h3>Uses of <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a> in <a href="../package-summary.html">javax.ws.rs.core</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#selectVariant(java.util.List)">selectVariant</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Select the representation variant that best matches the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> that return types with arguments of type <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Variant.VariantListBuilder.</span><code><span class="memberNameLink"><a href="../Variant.VariantListBuilder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Add the current combination of metadata to the list of supported variants
+ (provided the current combination of metadata is not empty) and
+ build a list of representation variants from the current state of
+ the builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.core</a> with parameters of type <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#ok(java.lang.Object,javax.ws.rs.core.Variant)">ok</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity,
+  <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder that contains a representation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variant(javax.ws.rs.core.Variant)">variant</a></span>&#8203;(<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&nbsp;variant)</code></th>
+<td class="colLast">
+<div class="block">Set message entity representation metadata.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(javax.ws.rs.core.Variant...)">variants</a></span>&#8203;(<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>...&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Method parameters in <a href="../package-summary.html">javax.ws.rs.core</a> with type arguments of type <a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.</span><code><span class="memberNameLink"><a href="../Response.html#notAcceptable(java.util.List)">notAcceptable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Create a new ResponseBuilder for a not acceptable response.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Request.</span><code><span class="memberNameLink"><a href="../Request.html#selectVariant(java.util.List)">selectVariant</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Select the representation variant that best matches the request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Response.ResponseBuilder.</span><code><span class="memberNameLink"><a href="../Response.ResponseBuilder.html#variants(java.util.List)">variants</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="../Variant.html" title="class in javax.ws.rs.core">Variant</a>&gt;&nbsp;variants)</code></th>
+<td class="colLast">
+<div class="block">Add a Vary header that lists the available variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Variant.html" title="class in javax.ws.rs.core">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/package-summary.html b/apidocs/2.1.6/javax/ws/rs/core/package-summary.html
new file mode 100644
index 0000000..68f8fc3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/package-summary.html
@@ -0,0 +1,432 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.core (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.core (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.ws.rs.core</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;C extends <a href="Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&gt;</th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Configuration.html" title="interface in javax.ws.rs.core">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a> context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Feature.html" title="interface in javax.ws.rs.core">Feature</a></th>
+<td class="colLast">
+<div class="block">A feature extension contract.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="FeatureContext.html" title="interface in javax.ws.rs.core">FeatureContext</a></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HttpHeaders.html" title="interface in javax.ws.rs.core">HttpHeaders</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to HTTP header information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PathSegment.html" title="interface in javax.ws.rs.core">PathSegment</a></th>
+<td class="colLast">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Request.html" title="interface in javax.ws.rs.core">Request</a></th>
+<td class="colLast">
+<div class="block">An injectable helper for request processing, all methods throw an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the scope of a request
+ (e.g.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SecurityContext.html" title="interface in javax.ws.rs.core">SecurityContext</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to security related
+ information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="StreamingOutput.html" title="interface in javax.ws.rs.core">StreamingOutput</a></th>
+<td class="colLast">
+<div class="block">A type that may be used as a resource method return value or as the entity
+ in a <a href="Response.html" title="class in javax.ws.rs.core"><code>Response</code></a> when the application wishes to stream the output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UriInfo.html" title="interface in javax.ws.rs.core">UriInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to application and request
+ URI information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Application.html" title="class in javax.ws.rs.core">Application</a></th>
+<td class="colLast">
+<div class="block">Defines the components of an application and supplies additional
+ meta-data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CacheControl.html" title="class in javax.ws.rs.core">CacheControl</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Cookie.html" title="class in javax.ws.rs.core">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="EntityTag.html" title="class in javax.ws.rs.core">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Form.html" title="class in javax.ws.rs.core">Form</a></th>
+<td class="colLast">
+<div class="block">Represents the the HTML form data request entity encoded using the
+ <code>"application/x-www-form-urlencoded"</code> content type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="GenericEntity.html" title="class in javax.ws.rs.core">GenericEntity</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Represents a message entity of a generic type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Link.html" title="class in javax.ws.rs.core">Link</a></th>
+<td class="colLast">
+<div class="block">Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Link.JaxbAdapter.html" title="class in javax.ws.rs.core">Link.JaxbAdapter</a></th>
+<td class="colLast">
+<div class="block">An implementation of JAXB <a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><code>XmlAdapter</code></a>
+ that maps the <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> type to a value that can be
+ marshalled and unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Link.JaxbLink.html" title="class in javax.ws.rs.core">Link.JaxbLink</a></th>
+<td class="colLast">
+<div class="block">Value type for <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MediaType.html" title="class in javax.ws.rs.core">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a>&lt;K,&#8203;V&gt;</th>
+<td class="colLast">
+<div class="block">A hash table based implementation of <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> interface.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NewCookie.html" title="class in javax.ws.rs.core">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Response.html" title="class in javax.ws.rs.core">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Variant.html" title="class in javax.ws.rs.core">Variant</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a resource representation variant.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Response.Status.html" title="enum in javax.ws.rs.core">Response.Status</a></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Response.Status.Family.html" title="enum in javax.ws.rs.core">Response.Status.Family</a></th>
+<td class="colLast">
+<div class="block">An enumeration representing the class of status code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NoContentException.html" title="class in javax.ws.rs.core">NoContentException</a></th>
+<td class="colLast">
+<div class="block">An I/O exception thrown by <a href="../ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> implementations
+ when reading a zero-length message content to indicate that the message body reader
+ is not able to produce an instance representing an zero-length message content.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="UriBuilderException.html" title="class in javax.ws.rs.core">UriBuilderException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception thrown by <a href="UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when
+ a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be constructed based on the current state of the
+ builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Context.html" title="annotation in javax.ws.rs.core">Context</a></th>
+<td class="colLast">
+<div class="block">This annotation is used to inject information into a class
+ field, bean property or method parameter.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/package-tree.html b/apidocs/2.1.6/javax/ws/rs/core/package-tree.html
new file mode 100644
index 0000000..ef3c589
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/package-tree.html
@@ -0,0 +1,221 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.core Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.core Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.ws.rs.core</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="AbstractMultivaluedMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;K,&#8203;V&gt; (implements javax.ws.rs.core.<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;)
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="MultivaluedHashMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;K,&#8203;V&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="Application.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Application</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="CacheControl.html" title="class in javax.ws.rs.core"><span class="typeNameLink">CacheControl</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Cookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Cookie</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="NewCookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">NewCookie</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="EntityTag.html" title="class in javax.ws.rs.core"><span class="typeNameLink">EntityTag</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Form.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Form</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="GenericEntity.html" title="class in javax.ws.rs.core"><span class="typeNameLink">GenericEntity</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="GenericType.html" title="class in javax.ws.rs.core"><span class="typeNameLink">GenericType</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="Link.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Link.JaxbLink.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link.JaxbLink</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="MediaType.html" title="class in javax.ws.rs.core"><span class="typeNameLink">MediaType</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Response.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Response</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a>)</li>
+<li class="circle">javax.ws.rs.core.<a href="Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Response.ResponseBuilder</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">IOException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="NoContentException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">NoContentException</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="UriBuilderException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">UriBuilderException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="UriBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">UriBuilder</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Variant.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Variant</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Variant.VariantListBuilder</span></a></li>
+<li class="circle">javax.xml.bind.annotation.adapters.<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><span class="typeNameLink">XmlAdapter</span></a>&lt;ValueType,&#8203;BoundType&gt;
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="Link.JaxbAdapter.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link.JaxbAdapter</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="Configurable.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;C&gt;
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="FeatureContext.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">FeatureContext</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="Configuration.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configuration</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Feature.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Feature</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="HttpHeaders.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">HttpHeaders</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Link.Builder.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Link.Builder</span></a></li>
+<li class="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">Map</span></a>&lt;K,&#8203;V&gt;
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">MultivaluedMap</span></a>&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="PathSegment.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">PathSegment</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Request.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Request</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="Response.StatusType.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Response.StatusType</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="SecurityContext.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">SecurityContext</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="StreamingOutput.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">StreamingOutput</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="UriInfo.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">UriInfo</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="Context.html" title="annotation in javax.ws.rs.core"><span class="typeNameLink">Context</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.lang.constant.Constable, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="Response.Status.html" title="enum in javax.ws.rs.core"><span class="typeNameLink">Response.Status</span></a> (implements javax.ws.rs.core.<a href="Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>)</li>
+<li class="circle">javax.ws.rs.core.<a href="Response.Status.Family.html" title="enum in javax.ws.rs.core"><span class="typeNameLink">Response.Status.Family</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/core/package-use.html b/apidocs/2.1.6/javax/ws/rs/core/package-use.html
new file mode 100644
index 0000000..274f6fa
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/core/package-use.html
@@ -0,0 +1,687 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Package javax.ws.rs.core (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.ws.rs.core (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.ws.rs.core" class="title">Uses of Package<br>javax.ws.rs.core</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="package-summary.html">javax.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.container">javax.ws.rs.container</a></th>
+<td class="colLast">
+<div class="block">Container-specific API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.core</a> used by <a href="../package-summary.html">javax.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#javax.ws.rs">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.Status.html#javax.ws.rs">Response.Status</a></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.core</a> used by <a href="../client/package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/CacheControl.html#javax.ws.rs.client">CacheControl</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Configurable.html#javax.ws.rs.client">Configurable</a></th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#javax.ws.rs.client">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a> context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Cookie.html#javax.ws.rs.client">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/EntityTag.html#javax.ws.rs.client">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Form.html#javax.ws.rs.client">Form</a></th>
+<td class="colLast">
+<div class="block">Represents the the HTML form data request entity encoded using the
+ <code>"application/x-www-form-urlencoded"</code> content type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/GenericType.html#javax.ws.rs.client">GenericType</a></th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.html#javax.ws.rs.client">Link</a></th>
+<td class="colLast">
+<div class="block">Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#javax.ws.rs.client">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#javax.ws.rs.client">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#javax.ws.rs.client">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/NewCookie.html#javax.ws.rs.client">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#javax.ws.rs.client">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.StatusType.html#javax.ws.rs.client">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilder.html#javax.ws.rs.client">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.html#javax.ws.rs.client">Variant</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a resource representation variant.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.container">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.core</a> used by <a href="../container/package-summary.html">javax.ws.rs.container</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Cookie.html#javax.ws.rs.container">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EntityTag.html#javax.ws.rs.container">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/FeatureContext.html#javax.ws.rs.container">FeatureContext</a></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.html#javax.ws.rs.container">Link</a></th>
+<td class="colLast">
+<div class="block">Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#javax.ws.rs.container">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#javax.ws.rs.container">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#javax.ws.rs.container">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/NewCookie.html#javax.ws.rs.container">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Request.html#javax.ws.rs.container">Request</a></th>
+<td class="colLast">
+<div class="block">An injectable helper for request processing, all methods throw an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> if called outside the scope of a request
+ (e.g.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#javax.ws.rs.container">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.StatusType.html#javax.ws.rs.container">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SecurityContext.html#javax.ws.rs.container">SecurityContext</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to security related
+ information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriInfo.html#javax.ws.rs.container">UriInfo</a></th>
+<td class="colLast">
+<div class="block">An injectable interface that provides access to application and request
+ URI information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.core</a> used by <a href="package-summary.html">javax.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/AbstractMultivaluedMap.html#javax.ws.rs.core">AbstractMultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">Abstract skeleton implementation of a <a href="MultivaluedMap.html" title="interface in javax.ws.rs.core"><code>MultivaluedMap</code></a> that is backed
+ by a [key, multi-value] store represented as a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map&lt;K, List&lt;V&gt;&gt;</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/CacheControl.html#javax.ws.rs.core">CacheControl</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Cache-Control response header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Configurable.html#javax.ws.rs.core">Configurable</a></th>
+<td class="colLast">
+<div class="block">Represents a client or server-side configurable context.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Configuration.html#javax.ws.rs.core">Configuration</a></th>
+<td class="colLast">
+<div class="block">A configuration state associated with a <a href="Configurable.html" title="interface in javax.ws.rs.core"><code>configurable</code></a> context.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Cookie.html#javax.ws.rs.core">Cookie</a></th>
+<td class="colLast">
+<div class="block">Represents the value of a HTTP cookie, transferred in a request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/EntityTag.html#javax.ws.rs.core">EntityTag</a></th>
+<td class="colLast">
+<div class="block">An abstraction for the value of a HTTP Entity Tag, used as the value
+ of an ETag response header.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Feature.html#javax.ws.rs.core">Feature</a></th>
+<td class="colLast">
+<div class="block">A feature extension contract.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/FeatureContext.html#javax.ws.rs.core">FeatureContext</a></th>
+<td class="colLast">
+<div class="block">A configurable context passed to <a href="Feature.html" title="interface in javax.ws.rs.core"><code>Feature</code></a> and <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>DynamicFeature</code></a>
+ instances by the runtime during the phase of their configuration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Form.html#javax.ws.rs.core">Form</a></th>
+<td class="colLast">
+<div class="block">Represents the the HTML form data request entity encoded using the
+ <code>"application/x-www-form-urlencoded"</code> content type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/GenericType.html#javax.ws.rs.core">GenericType</a></th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.html#javax.ws.rs.core">Link</a></th>
+<td class="colLast">
+<div class="block">Class representing hypermedia links.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#javax.ws.rs.core">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.JaxbLink.html#javax.ws.rs.core">Link.JaxbLink</a></th>
+<td class="colLast">
+<div class="block">Value type for <a href="Link.html" title="class in javax.ws.rs.core"><code>Link</code></a> that can be marshalled and
+ unmarshalled by JAXB.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#javax.ws.rs.core">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#javax.ws.rs.core">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/NewCookie.html#javax.ws.rs.core">NewCookie</a></th>
+<td class="colLast">
+<div class="block">Used to create a new HTTP cookie, transferred in a response.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/PathSegment.html#javax.ws.rs.core">PathSegment</a></th>
+<td class="colLast">
+<div class="block">Represents a URI path segment and any associated matrix parameters.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#javax.ws.rs.core">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.ResponseBuilder.html#javax.ws.rs.core">Response.ResponseBuilder</a></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.Status.html#javax.ws.rs.core">Response.Status</a></th>
+<td class="colLast">
+<div class="block">Commonly used status codes defined by HTTP, see
+ {@link <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10">HTTP/1.1 documentation</a>}
+ for the complete list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.Status.Family.html#javax.ws.rs.core">Response.Status.Family</a></th>
+<td class="colLast">
+<div class="block">An enumeration representing the class of status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.StatusType.html#javax.ws.rs.core">Response.StatusType</a></th>
+<td class="colLast">
+<div class="block">Base interface for statuses used in responses.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilder.html#javax.ws.rs.core">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilderException.html#javax.ws.rs.core">UriBuilderException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception thrown by <a href="UriBuilder.html#build(java.lang.Object...)"><code>UriBuilder.build(Object...)</code></a> methods when
+ a <a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net" class="externalLink"><code>URI</code></a> cannot be constructed based on the current state of the
+ builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.html#javax.ws.rs.core">Variant</a></th>
+<td class="colLast">
+<div class="block">Abstraction for a resource representation variant.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.VariantListBuilder.html#javax.ws.rs.core">Variant.VariantListBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.core</a> used by <a href="../ext/package-summary.html">javax.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Application.html#javax.ws.rs.ext">Application</a></th>
+<td class="colLast">
+<div class="block">Defines the components of an application and supplies additional
+ meta-data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Link.Builder.html#javax.ws.rs.ext">Link.Builder</a></th>
+<td class="colLast">
+<div class="block">Builder class for hypermedia links.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#javax.ws.rs.ext">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MultivaluedMap.html#javax.ws.rs.ext">MultivaluedMap</a></th>
+<td class="colLast">
+<div class="block">A map of key-values pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.html#javax.ws.rs.ext">Response</a></th>
+<td class="colLast">
+<div class="block">Defines the contract between a returned instance and the runtime when
+ an application needs to provide meta-data to the runtime.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Response.ResponseBuilder.html#javax.ws.rs.ext">Response.ResponseBuilder</a></th>
+<td class="colLast">
+<div class="block">A class used to build Response instances that contain metadata instead
+ of or in addition to an entity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/UriBuilder.html#javax.ws.rs.ext">UriBuilder</a></th>
+<td class="colLast">
+<div class="block">URI template-aware utility class for building URIs from their components.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/Variant.VariantListBuilder.html#javax.ws.rs.ext">Variant.VariantListBuilder</a></th>
+<td class="colLast">
+<div class="block">A builder for a list of representation variants.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.core</a> used by <a href="../sse/package-summary.html">javax.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/GenericType.html#javax.ws.rs.sse">GenericType</a></th>
+<td class="colLast">
+<div class="block">Represents a generic message entity type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MediaType.html#javax.ws.rs.sse">MediaType</a></th>
+<td class="colLast">
+<div class="block">An abstraction for a media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ContextResolver.html b/apidocs/2.1.6/javax/ws/rs/ext/ContextResolver.html
new file mode 100644
index 0000000..91e542e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ContextResolver.html
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ContextResolver (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ContextResolver (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContextResolver.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface ContextResolver" class="title">Interface ContextResolver&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the context</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ContextResolver&lt;T&gt;</span></pre>
+<div class="block">Contract for a provider that supplies context information to resource
+ classes and other providers.
+
+ A <code>ContextResolver</code> implementation may be annotated
+ with <a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a> to restrict the media types for
+ which it will be considered suitable.
+ <p>
+ Providers implementing <code>ContextResolver</code> contract must be either programmatically
+ registered in an API runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a>, 
+<a href="Providers.html#getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)"><code>Providers.getContextResolver(Class, javax.ws.rs.core.MediaType)</code></a>, 
+<a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="ContextResolver.html" title="type parameter in ContextResolver">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContext(java.lang.Class)">getContext</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get a context of type <code>T</code> that is applicable to the supplied
+ type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getContext(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getContext</h4>
+<pre class="methodSignature"><a href="ContextResolver.html" title="type parameter in ContextResolver">T</a>&nbsp;getContext&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
+<div class="block">Get a context of type <code>T</code> that is applicable to the supplied
+ type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of object for which a context is desired</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a context for the supplied type or <code>null</code> if a
+         context for the supplied type is not available from this provider.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ContextResolver.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ExceptionMapper.html b/apidocs/2.1.6/javax/ws/rs/ext/ExceptionMapper.html
new file mode 100644
index 0000000..4525ea2
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ExceptionMapper.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ExceptionMapper (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ExceptionMapper (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExceptionMapper.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface ExceptionMapper" class="title">Interface ExceptionMapper&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>E</code> - exception type supported by the provider.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ExceptionMapper&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</span></pre>
+<div class="block">Contract for a provider that maps Java exceptions to <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.
+ <p>
+ Providers implementing <code>ExceptionMapper</code> contract must be either programmatically
+ registered in an API runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the runtime during a provider scanning phase.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toResponse(E)">toResponse</a></span>&#8203;(<a href="ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a>&nbsp;exception)</code></th>
+<td class="colLast">
+<div class="block">Map an exception to a <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="toResponse(java.lang.Throwable)">
+<!--   -->
+</a><a id="toResponse(E)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toResponse</h4>
+<pre class="methodSignature"><a href="../core/Response.html" title="class in javax.ws.rs.core">Response</a>&nbsp;toResponse&#8203;(<a href="ExceptionMapper.html" title="type parameter in ExceptionMapper">E</a>&nbsp;exception)</pre>
+<div class="block">Map an exception to a <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>. Returning
+ <code>null</code> results in a <a href="../core/Response.Status.html#NO_CONTENT"><code>Response.Status.NO_CONTENT</code></a>
+ response. Throwing a runtime exception results in a
+ <a href="../core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>Response.Status.INTERNAL_SERVER_ERROR</code></a> response.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>exception</code> - the exception to map to a response.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a response mapped from the supplied exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExceptionMapper.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/InterceptorContext.html b/apidocs/2.1.6/javax/ws/rs/ext/InterceptorContext.html
new file mode 100644
index 0000000..db92d14
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/InterceptorContext.html
@@ -0,0 +1,566 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>InterceptorContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InterceptorContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterceptorContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface InterceptorContext" class="title">Interface InterceptorContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></code>, <code><a href="WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">InterceptorContext</span></pre>
+<div class="block">Context shared by message body interceptors that can be used to wrap
+ calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>. The getters and
+ setters in this context class correspond to the parameters in
+ the aforementioned methods.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>, 
+<a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>, 
+<a href="ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptorContext</code></a>, 
+<a href="WriterInterceptorContext.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptorContext</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnnotations()">getAnnotations</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get an array of the annotations formally declared on the artifact that
+ initiated the intercepted entity provider invocation.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGenericType()">getGenericType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the type of the object to be produced or written.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get media type of HTTP entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProperty(java.lang.String)">getProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPropertyNames()">getPropertyNames</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property
+ names available within the context of the current request/response exchange context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get Java type supported by corresponding message body provider.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeProperty(java.lang.String)">removeProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Update annotations on the formal declaration of the artifact that
+ initiated the intercepted entity provider invocation.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setGenericType(java.lang.reflect.Type)">setGenericType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</code></th>
+<td class="colLast">
+<div class="block">Update type of the object to be produced or written.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i9">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMediaType(javax.ws.rs.core.MediaType)">setMediaType</a></span>&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Update media type of HTTP entity.</div>
+</td>
+</tr>
+<tr class="altColor" id="i10">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setProperty(java.lang.String,java.lang.Object)">setProperty</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
+<td class="colLast">
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i11">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setType(java.lang.Class)">setType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Update Java type before calling message body provider.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Returns the property with the given name registered in the current request/response
+ exchange context, or <code>null</code> if there is no property by that name.
+ <p>
+ A property allows a filters and interceptors to exchange
+ additional custom information not already provided by this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>.
+ Custom property names should follow the same convention as package names.
+ </p>
+ <p>
+ In a Servlet container, on the server side, the properties are backed by the
+ <code>ServletRequest</code> and contain all the attributes available in the <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <code>Object</code> containing the value of the property, or
+         <code>null</code> if no property exists matching the given name.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getPropertyNames()"><code>getPropertyNames()</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="getPropertyNames()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPropertyNames</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</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" class="externalLink">String</a>&gt;&nbsp;getPropertyNames()</pre>
+<div class="block">Returns an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> containing the property
+ names available within the context of the current request/response exchange context.
+ <p>
+ Use the <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a> method with a property name to get the value of
+ a property.
+ </p>
+ <p>
+ In a Servlet container, the properties are synchronized with the <code>ServletRequest</code>
+ and expose all the attributes available in the <code>ServletRequest</code>. Any modifications
+ of the properties are also reflected in the set of properties of the associated
+ <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an immutable <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>collection</code></a> of property names.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="setProperty(java.lang.String,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProperty</h4>
+<pre class="methodSignature">void&nbsp;setProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</pre>
+<div class="block">Binds an object to a given property name in the current request/response
+ exchange context. If the name specified is already used for a property,
+ this method will replace the value of the property with the new value.
+ <p>
+ A property allows a filters and interceptors to exchange
+ additional custom information not already provided by this interface.
+ </p>
+ <p>
+ A list of supported properties can be retrieved using <a href="#getPropertyNames()"><code>getPropertyNames()</code></a>.
+ Custom property names should follow the same convention as package names.
+ </p>
+ <p>
+ If a <code>null</code> value is passed, the effect is the same as calling the
+ <a href="#removeProperty(java.lang.String)"><code>removeProperty(String)</code></a> method.
+ </p>
+ <p>
+ In a Servlet container, on the server side, the properties are backed by the
+ <code>ServletRequest</code> and contain all the attributes available in the <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property.</dd>
+<dd><code>object</code> - an <code>Object</code> representing the property to be bound.</dd>
+</dl>
+</li>
+</ul>
+<a id="removeProperty(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeProperty</h4>
+<pre class="methodSignature">void&nbsp;removeProperty&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Removes a property with the given name from the current request/response
+ exchange context. After removal, subsequent calls to <a href="#getProperty(java.lang.String)"><code>getProperty(java.lang.String)</code></a>
+ to retrieve the property value will return <code>null</code>.
+ <p>
+ In a Servlet container, on the server side, the properties are backed by the
+ <code>ServletRequest</code> and contain all the attributes available in the <code>ServletRequest</code>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - a <code>String</code> specifying the name of the property to be removed.</dd>
+</dl>
+</li>
+</ul>
+<a id="getAnnotations()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAnnotations</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;getAnnotations()</pre>
+<div class="block">Get an array of the annotations formally declared on the artifact that
+ initiated the intercepted entity provider invocation.
+
+ E.g. if the message body is to be converted into a method parameter, this
+ will be the annotations on that parameter returned by
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true#getParameterAnnotations()" title="class or interface in java.lang.reflect" class="externalLink"><code>Method.getParameterAnnotations()</code></a>;
+ if the server-side response entity instance is to be converted into an
+ output stream, this will be the annotations on the matched resource method
+ returned by <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AccessibleObject.html?is-external=true#getAnnotations()" title="class or interface in java.lang.reflect" class="externalLink"><code>Method.getAnnotations()</code></a>.
+
+ This method may return an empty array in case the interceptor is
+ not invoked in a context of any particular resource method
+ (e.g. as part of the client API), but will never return <code>null</code>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>annotations declared on the artifact that initiated the intercepted
+         entity provider invocation.</dd>
+</dl>
+</li>
+</ul>
+<a id="setAnnotations(java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAnnotations</h4>
+<pre class="methodSignature">void&nbsp;setAnnotations&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Update annotations on the formal declaration of the artifact that
+ initiated the intercepted entity provider invocation.
+
+ Calling this method has no effect in the client API.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>annotations</code> - updated annotations declarataion of the artifact that
+                    initiated the intercepted entity provider invocation.
+                    Must not be <code>null</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the input parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getType()</pre>
+<div class="block">Get Java type supported by corresponding message body provider.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>java type supported by provider</dd>
+</dl>
+</li>
+</ul>
+<a id="setType(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre class="methodSignature">void&nbsp;setType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
+<div class="block">Update Java type before calling message body provider.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - java type for provider</dd>
+</dl>
+</li>
+</ul>
+<a id="getGenericType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGenericType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getGenericType()</pre>
+<div class="block">Get the type of the object to be produced or written.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>type of object produced or written</dd>
+</dl>
+</li>
+</ul>
+<a id="setGenericType(java.lang.reflect.Type)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setGenericType</h4>
+<pre class="methodSignature">void&nbsp;setGenericType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType)</pre>
+<div class="block">Update type of the object to be produced or written.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>genericType</code> - new type for object</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get media type of HTTP entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>media type of HTTP entity</dd>
+</dl>
+</li>
+</ul>
+<a id="setMediaType(javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setMediaType</h4>
+<pre class="methodSignature">void&nbsp;setMediaType&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Update media type of HTTP entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - new type for HTTP entity</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InterceptorContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/MessageBodyReader.html b/apidocs/2.1.6/javax/ws/rs/ext/MessageBodyReader.html
new file mode 100644
index 0000000..07d725e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/MessageBodyReader.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>MessageBodyReader (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageBodyReader (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyReader.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface MessageBodyReader" class="title">Interface MessageBodyReader&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - Java type supported by the provider</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MessageBodyReader&lt;T&gt;</span></pre>
+<div class="block">Contract for a provider that supports the conversion of a stream to a
+ Java type.
+
+ A <code>MessageBodyReader</code> implementation may be annotated
+ with <a href="../Consumes.html" title="annotation in javax.ws.rs"><code>Consumes</code></a> to restrict the media types for which it will
+ be considered suitable.
+ <p>
+ Providers implementing <code>MessageBodyReader</code> contract must be either programmatically
+ registered in an API runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../Consumes.html" title="annotation in javax.ws.rs"><code>Consumes</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">isReadable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+          <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a
+ particular type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)">readFrom</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+        <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+        <a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isReadable</h4>
+<pre class="methodSignature">boolean&nbsp;isReadable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                   <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Ascertain if the MessageBodyReader can produce an instance of a
+ particular type. The <code>type</code> parameter gives the
+ class of the instance that should be produced, the <code>genericType</code> parameter
+ gives the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>java.lang.reflect.Type</code></a> of the instance
+ that should be produced.
+ E.g. if the instance to be produced is <code>List&lt;String&gt;</code>, the <code>type</code> parameter
+ will be <code>java.util.List</code> and the <code>genericType</code> parameter will be
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/ParameterizedType.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink"><code>java.lang.reflect.ParameterizedType</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of instance to be produced.</dd>
+<dd><code>genericType</code> - the type of instance to be produced. E.g. if the
+                    message body is to be converted into a method parameter, this will be
+                    the formal type of the method parameter as returned by
+                    <code>Method.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the
+                    artifact that will be initialized with the produced instance. E.g. if the
+                    message body is to be converted into a method parameter, this will be
+                    the annotations on that parameter returned by
+                    <code>Method.getParameterAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity, if one is not
+                    specified in the request then <code>application/octet-stream</code> is
+                    used.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the type is supported, otherwise <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readFrom</h4>
+<pre class="methodSignature"><a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&nbsp;readFrom&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;<a href="MessageBodyReader.html" title="type parameter in MessageBodyReader">T</a>&gt;&nbsp;type,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+           <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+           <a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;httpHeaders,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;entityStream)
+    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+           <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Read a type from the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a>.
+ <p>
+ In case the entity input stream is empty, the reader is expected to either return a
+ Java representation of a zero-length entity or throw a <a href="../core/NoContentException.html" title="class in javax.ws.rs.core"><code>NoContentException</code></a>
+ in case no zero-length entity representation is defined for the supported Java type.
+ A <code>NoContentException</code>, if thrown by a message body reader while reading a server
+ request entity, is automatically translated by the server runtime into a <a href="../BadRequestException.html" title="class in javax.ws.rs"><code>BadRequestException</code></a>
+ wrapping the original <code>NoContentException</code> and rethrown for a standard processing by
+ the registered <a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext"><code>exception mappers</code></a>.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the type that is to be read from the entity stream.</dd>
+<dd><code>genericType</code> - the type of instance to be produced. E.g. if the
+                     message body is to be converted into a method parameter, this will be
+                     the formal type of the method parameter as returned by
+                     <code>Method.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the
+                     artifact that will be initialized with the produced instance. E.g.
+                     if the message body is to be converted into a method parameter, this
+                     will be the annotations on that parameter returned by
+                     <code>Method.getParameterAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dd><code>httpHeaders</code> - the read-only HTTP headers associated with HTTP entity.</dd>
+<dd><code>entityStream</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>InputStream</code></a> of the HTTP entity. The
+                     caller is responsible for ensuring that the input stream ends when the
+                     entity has been consumed. The implementation should not close the input
+                     stream.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type that was read from the stream. In case the entity input stream is empty, the reader
+         is expected to either return an instance representing a zero-length entity or throw
+         a <a href="../core/NoContentException.html" title="class in javax.ws.rs.core"><code>NoContentException</code></a> in case no zero-length entity representation is
+         defined for the supported Java type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises. In case the entity input stream is empty
+                             and the reader is not able to produce a Java representation for
+                             a zero-length entity, <code>NoContentException</code> is expected to
+                             be thrown.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - if a specific HTTP error response needs to be produced.
+                             Only effective if thrown prior to the response being committed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyReader.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/MessageBodyWriter.html b/apidocs/2.1.6/javax/ws/rs/ext/MessageBodyWriter.html
new file mode 100644
index 0000000..8df73f0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/MessageBodyWriter.html
@@ -0,0 +1,368 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>MessageBodyWriter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MessageBodyWriter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":18,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyWriter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface MessageBodyWriter" class="title">Interface MessageBodyWriter&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the type that can be written.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">MessageBodyWriter&lt;T&gt;</span></pre>
+<div class="block">Contract for a provider that supports the conversion of a Java type to a
+ stream.
+
+ A <code>MessageBodyWriter</code> implementation may be annotated
+ with <a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a> to restrict the media types for which it will
+ be considered suitable.
+ <p>
+ Providers implementing <code>MessageBodyWriter</code> contract must be either programmatically
+ registered in an API runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>Provider</code></a>, 
+<a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>default long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getSize</a></span>&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of
+ the serialized form of <code>t</code>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">isWriteable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+           <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">writeTo</a></span>&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+       <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+       <a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+       <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)</code></th>
+<td class="colLast">
+<div class="block">Write a type to an HTTP message.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isWriteable</h4>
+<pre class="methodSignature">boolean&nbsp;isWriteable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Ascertain if the MessageBodyWriter supports a particular type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of instance that is to be written.</dd>
+<dd><code>genericType</code> - the type of instance to be written, obtained either
+                    by reflection of a resource method return type or via inspection
+                    of the returned instance. <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a>
+                    provides a way to specify this information at runtime.</dd>
+<dd><code>annotations</code> - an array of the annotations attached to the message entity instance.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if the type is supported, otherwise <code>false</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getSize(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a><a id="getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSize</h4>
+<pre class="methodSignature">default&nbsp;long&nbsp;getSize&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                     <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Originally, the method has been called before <code>writeTo</code> to ascertain the length in bytes of
+ the serialized form of <code>t</code>. A non-negative return value has been used in a HTTP
+ <code>Content-Length</code> header.
+ <p>
+ As of version 2.0 of this API, the method has been deprecated and the value returned by the method is ignored
+ by an API runtime. All <code>MessageBodyWriter</code> implementations are advised to return <code>-1</code>
+ from the method. Responsibility to compute the actual <code>Content-Length</code> header value has been
+ delegated to the runtime.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - the instance to write</dd>
+<dd><code>type</code> - the class of instance that is to be written.</dd>
+<dd><code>genericType</code> - the type of instance to be written. <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a>
+                    provides a way to specify this information at runtime.</dd>
+<dd><code>annotations</code> - an array of the annotations attached to the message entity instance.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>length in bytes or -1 if the length cannot be determined in advance.</dd>
+</dl>
+</li>
+</ul>
+<a id="writeTo(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">
+<!--   -->
+</a><a id="writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeTo</h4>
+<pre class="methodSignature">void&nbsp;writeTo&#8203;(<a href="MessageBodyWriter.html" title="type parameter in MessageBodyWriter">T</a>&nbsp;t,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+             <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType,
+             <a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;httpHeaders,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;entityStream)
+      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+             <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Write a type to an HTTP message. The message header map is mutable
+ but any changes must be made before writing to the output stream since
+ the headers will be flushed prior to writing the message body.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>t</code> - the instance to write.</dd>
+<dd><code>type</code> - the class of instance that is to be written.</dd>
+<dd><code>genericType</code> - the type of instance to be written. <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a>
+                     provides a way to specify this information at runtime.</dd>
+<dd><code>annotations</code> - an array of the annotations attached to the message entity instance.</dd>
+<dd><code>mediaType</code> - the media type of the HTTP entity.</dd>
+<dd><code>httpHeaders</code> - a mutable map of the HTTP message headers.</dd>
+<dd><code>entityStream</code> - the <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink"><code>OutputStream</code></a> for the HTTP entity. The
+                     implementation should not close the output stream.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - if a specific HTTP error response needs to be produced.
+                             Only effective if thrown prior to the message being committed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MessageBodyWriter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ParamConverter.Lazy.html b/apidocs/2.1.6/javax/ws/rs/ext/ParamConverter.Lazy.html
new file mode 100644
index 0000000..931b345
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ParamConverter.Lazy.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ParamConverter.Lazy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ParamConverter.Lazy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.Lazy.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Annotation Type ParamConverter.Lazy" class="title">Annotation Type ParamConverter.Lazy</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public static @interface <span class="memberNameLabel">ParamConverter.Lazy</span></pre>
+<div class="block">Mandates that a conversion of any <a href="../DefaultValue.html" title="annotation in javax.ws.rs"><code>default value</code></a> delegated
+ to a <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>parameter converter</code></a> annotated with <code>@Lazy</code>
+ annotation SHOULD occur only once the value is actually required (e.g. to be
+ injected for the first time).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.Lazy.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ParamConverter.html b/apidocs/2.1.6/javax/ws/rs/ext/ParamConverter.html
new file mode 100644
index 0000000..8e5aa96
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ParamConverter.html
@@ -0,0 +1,340 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ParamConverter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ParamConverter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface ParamConverter" class="title">Interface ParamConverter&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the supported Java type convertible to/from a <code>String</code> format.</dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ParamConverter&lt;T&gt;</span></pre>
+<div class="block">Defines a contract for a delegate responsible for converting between a
+ <code>String</code> form of a message parameter value and the corresponding custom
+ Java type <code>T</code>.
+
+ Conversion of message parameter values injected via
+ <a href="../PathParam.html" title="annotation in javax.ws.rs"><code>&#64;PathParam</code></a>, <a href="../QueryParam.html" title="annotation in javax.ws.rs"><code>&#64;QueryParam</code></a>,
+ <a href="../MatrixParam.html" title="annotation in javax.ws.rs"><code>&#64;MatrixParam</code></a>, <a href="../FormParam.html" title="annotation in javax.ws.rs"><code>&#64;FormParam</code></a>,
+ <a href="../CookieParam.html" title="annotation in javax.ws.rs"><code>&#64;CookieParam</code></a> and <a href="../HeaderParam.html" title="annotation in javax.ws.rs"><code>&#64;HeaderParam</code></a>
+ is supported.
+ API implementations MUST support the <code>ParamConverter</code> mechanism for all Java types.
+ If a <code>ParamConverter</code> is available for a type, it MUST be preferred over all other 
+ conversion strategies mentioned in section 3.2 (i.e. single <code>String</code> argument constructor, 
+ static <code>valueOf</code> or <code>fromString</code> methods, etc.).
+ <p>
+ By default, when used for injection of parameter values, a selected <code>ParamConverter</code>
+ instance MUST be used eagerly by an API runtime to convert any <a href="../DefaultValue.html" title="annotation in javax.ws.rs"><code>default value</code></a> in the resource or provider model, that is during the application deployment,
+ before any value &ndash; default or otherwise &ndash; is actually required.
+ This conversion strategy ensures that any errors in the default values are reported
+ as early as possible.
+ This default behavior may be overridden by annotating the <code>ParamConverter</code>
+ implementation class with a <a href="ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext"><code>&#64;Lazy</code></a> annotation. In such case any default
+ value conversion delegated to the <code>@Lazy</code>-annotated converter will be deferred
+ to a latest possible moment (i.e. until the injection of such default value is required).
+ </p>
+ <p>
+ NOTE: A service implementing this contract is not recognized as a registrable
+ extension provider. Instead, a <a href="ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><code>ParamConverterProvider</code></a> instance
+ responsible for providing <code>ParamConverter</code> instances has to be registered
+ as one of the extension providers.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext">ParamConverter.Lazy</a></span></code></th>
+<td class="colLast">
+<div class="block">Mandates that a conversion of any <a href="../DefaultValue.html" title="annotation in javax.ws.rs"><code>default value</code></a> delegated
+ to a <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>parameter converter</code></a> annotated with <code>@Lazy</code>
+ annotation SHOULD occur only once the value is actually required (e.g.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="ParamConverter.html" title="type parameter in ParamConverter">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromString(java.lang.String)">fromString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(T)">toString</a></span>&#8203;(<a href="ParamConverter.html" title="type parameter in ParamConverter">T</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Convert the supplied value to a String.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="fromString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromString</h4>
+<pre class="methodSignature"><a href="ParamConverter.html" title="type parameter in ParamConverter">T</a>&nbsp;fromString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the string value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created instance of <code>T</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be
+                                  parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString(java.lang.Object)">
+<!--   -->
+</a><a id="toString(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString&#8203;(<a href="ParamConverter.html" title="type parameter in ParamConverter">T</a>&nbsp;value)</pre>
+<div class="block">Convert the supplied value to a String.
+ <p>
+ This method is reserved for future use. Proprietary API extensions may leverage the method.
+ Users should be aware that any such support for the method comes at the expense of producing
+ non-portable code.
+ </p></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of type <code>T</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a String representation of the value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied object cannot be
+                                  serialized or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverter.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ParamConverterProvider.html b/apidocs/2.1.6/javax/ws/rs/ext/ParamConverterProvider.html
new file mode 100644
index 0000000..c68bdf3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ParamConverterProvider.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ParamConverterProvider (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ParamConverterProvider (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverterProvider.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface ParamConverterProvider" class="title">Interface ParamConverterProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ParamConverterProvider</span></pre>
+<div class="block">Contract for a provider of <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> instances.
+ <p>
+ Providers implementing <code>ParamConverterProvider</code> contract must be either programmatically
+ registered in a runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the the runtime during a provider scanning phase.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D)">getConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;rawType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Obtain a <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion
+ for an instance of a particular Java type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[])">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConverter</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a>&lt;T&gt;&nbsp;getConverter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;rawType,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</pre>
+<div class="block">Obtain a <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion
+ for an instance of a particular Java type.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - the supported Java type convertible to/from a <code>String</code> format.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rawType</code> - the raw type of the object to be converted.</dd>
+<dd><code>genericType</code> - the type of object to be converted. E.g. if an String value
+                    representing the injected request parameter
+                    is to be converted into a method parameter, this will be the
+                    formal type of the method parameter as returned by <code>Class.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations associated with the convertible
+                    parameter instance. E.g. if a string value is to be converted into a method parameter,
+                    this would be the annotations on that parameter as returned by
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html?is-external=true#getParameterAnnotations()" title="class or interface in java.lang.reflect" class="externalLink"><code>Method.getParameterAnnotations()</code></a>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the string converter, otherwise <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ParamConverterProvider.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/Provider.html b/apidocs/2.1.6/javax/ws/rs/ext/Provider.html
new file mode 100644
index 0000000..a9a8bf1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/Provider.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Provider (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Provider (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Provider.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Annotation Type Provider" class="title">Annotation Type Provider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation" class="externalLink">TYPE</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation" class="externalLink">RUNTIME</a>)
+<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Documented.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">@Documented</a>
+public @interface <span class="memberNameLabel">Provider</span></pre>
+<div class="block">Marks an implementation of an extension interface that should be discoverable
+ by the runtime during a provider scanning phase.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Provider.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Required&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Element</li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/Providers.html b/apidocs/2.1.6/javax/ws/rs/ext/Providers.html
new file mode 100644
index 0000000..eee8cf6
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/Providers.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Providers (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Providers (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Providers.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface Providers" class="title">Interface Providers</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Providers</span></pre>
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Context.html" title="annotation in javax.ws.rs.core"><code>Context</code></a>, 
+<a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a>, 
+<a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a>, 
+<a href="ContextResolver.html" title="interface in javax.ws.rs.ext"><code>ContextResolver</code></a>, 
+<a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext"><code>ExceptionMapper</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)">getContextResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                  <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;<br><a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExceptionMapper(java.lang.Class)">getExceptionMapper</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get an exception mapping provider for a particular class of exception.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyReader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyWriter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageBodyReader</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;&nbsp;getMessageBodyReader&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                                              <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Get a message body reader that matches a set of criteria. The set of
+ readers is first filtered by comparing the supplied value of
+ <code>mediaType</code> with the value of each reader's
+ <a href="../Consumes.html" title="annotation in javax.ws.rs"><code>Consumes</code></a>, ensuring the supplied value of
+ <code>type</code> is assignable to the generic type of the reader, and
+ eliminating those that do not match.
+ The list of matching readers is then ordered with those with the best
+ matching values of <a href="../Consumes.html" title="annotation in javax.ws.rs"><code>Consumes</code></a> (x/y > x&#47;* > *&#47;*)
+ sorted first. Finally, the
+ <a href="MessageBodyReader.html#isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)"><code>MessageBodyReader.isReadable(Class, Type, Annotation[], MediaType)</code></a>
+ method is called on each reader in order using the supplied criteria and
+ the first reader that returns <code>true</code> is selected and returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the the object that is to be read.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of the object that is to be read.</dd>
+<dd><code>genericType</code> - the type of object to be produced. E.g. if the
+                    message body is to be converted into a method parameter, this will be
+                    the formal type of the method parameter as returned by
+                    <code>Class.getGenericParameterTypes</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the
+                    artifact that will be initialized with the produced instance. E.g. if
+                    the message body is to be converted into a method parameter, this will
+                    be the annotations on that parameter returned by
+                    <code>Class.getParameterAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the data that will be read.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a MessageBodyReader that matches the supplied criteria or <code>null</code>
+         if none is found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageBodyWriter</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;&nbsp;getMessageBodyWriter&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                                              <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Get a message body writer that matches a set of criteria. The set of
+ writers is first filtered by comparing the supplied value of
+ <code>mediaType</code> with the value of each writer's
+ <a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a>, ensuring the supplied value of
+ <code>type</code> is assignable to the generic type of the reader, and
+ eliminating those that do not match.
+ The list of matching writers is then ordered with those with the best
+ matching values of <a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a> (x/y > x&#47;* > *&#47;*)
+ sorted first. Finally, the
+ <a href="MessageBodyWriter.html#isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)"><code>MessageBodyWriter.isWriteable(Class, Type, Annotation[], MediaType)</code></a>
+ method is called on each writer in order using the supplied criteria and
+ the first writer that returns <code>true</code> is selected and returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the object that is to be written.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of the object that is to be written.</dd>
+<dd><code>genericType</code> - the type of object to be written. E.g. if the
+                    message body is to be produced from a field, this will be
+                    the declared type of the field as returned by <code>Field.getGenericType</code>.</dd>
+<dd><code>annotations</code> - an array of the annotations on the declaration of the
+                    artifact that will be written. E.g. if the
+                    message body is to be produced from a field, this will be
+                    the annotations on that field returned by
+                    <code>Field.getDeclaredAnnotations</code>.</dd>
+<dd><code>mediaType</code> - the media type of the data that will be written.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a MessageBodyReader that matches the supplied criteria or <code>null</code>
+         if none is found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getExceptionMapper(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getExceptionMapper</h4>
+<pre class="methodSignature">&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;<a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a>&lt;T&gt;&nbsp;getExceptionMapper&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Get an exception mapping provider for a particular class of exception.
+ Returns the provider whose generic type is the nearest superclass of
+ <code>type</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the exception handled by the exception mapping provider.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of exception.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an <a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext"><code>ExceptionMapper</code></a> for the supplied type or <code>null</code>
+         if none is found.</dd>
+</dl>
+</li>
+</ul>
+<a id="getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getContextResolver</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;<a href="ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a>&lt;T&gt;&nbsp;getContextResolver&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                                          <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Get a context resolver for a particular type of context and media type.
+ The set of resolvers is first filtered by comparing the supplied value of
+ <code>mediaType</code> with the value of each resolver's
+ <a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a>, ensuring the generic type of the context
+ resolver is assignable to the supplied value of <code>contextType</code>, and
+ eliminating those that do not match. If only one resolver matches the
+ criteria then it is returned. If more than one resolver matches then the
+ list of matching resolvers is ordered with those with the best
+ matching values of <a href="../Produces.html" title="annotation in javax.ws.rs"><code>Produces</code></a> (x/y > x&#47;* > *&#47;*)
+ sorted first. A proxy is returned that delegates calls to
+ <a href="ContextResolver.html#getContext(java.lang.Class)"><code>ContextResolver.getContext(java.lang.Class)</code></a> to each matching context
+ resolver in order and returns the first non-null value it obtains or null
+ if all matching context resolvers return null.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - type of the context.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>contextType</code> - the class of context desired.</dd>
+<dd><code>mediaType</code> - the media type of data for which a context is required.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a matching context resolver instance or <code>null</code> if no matching
+         context providers are found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Providers.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ReaderInterceptor.html b/apidocs/2.1.6/javax/ws/rs/ext/ReaderInterceptor.html
new file mode 100644
index 0000000..8eb3750
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ReaderInterceptor.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ReaderInterceptor (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderInterceptor (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptor.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface ReaderInterceptor" class="title">Interface ReaderInterceptor</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">ReaderInterceptor</span></pre>
+<div class="block">Interface for message body reader interceptors that wrap around calls
+ to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.
+ <p>
+ Providers implementing <code>ReaderInterceptor</code> contract must be either programmatically
+ registered in an API runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the runtime during a provider scanning phase.
+ Message body interceptor instances may also be discovered and
+ bound <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aroundReadFrom(javax.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom</a></span>&#8203;(<a href="ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="aroundReadFrom(javax.ws.rs.ext.ReaderInterceptorContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>aroundReadFrom</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;aroundReadFrom&#8203;(<a href="ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)
+               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+                      <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.
+
+ The parameters of the wrapped method called are available from <code>context</code>.
+ Implementations of this method SHOULD explicitly call <a href="ReaderInterceptorContext.html#proceed()"><code>ReaderInterceptorContext.proceed()</code></a>
+ to invoke the next interceptor in the chain, and ultimately the wrapped
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - invocation context.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>result of next interceptor invoked or the wrapped method if last interceptor in chain.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped
+                             <code>MessageBodyReader.readFrom</code> method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyReader.readFrom</code> method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptor.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/ReaderInterceptorContext.html b/apidocs/2.1.6/javax/ws/rs/ext/ReaderInterceptorContext.html
new file mode 100644
index 0000000..e19ac8d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/ReaderInterceptorContext.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>ReaderInterceptorContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderInterceptorContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptorContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface ReaderInterceptorContext" class="title">Interface ReaderInterceptorContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">ReaderInterceptorContext</span>
+extends <a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></pre>
+<div class="block">Context class used by <a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>
+ to intercept calls to (@link javax.ws.rs.ext.MessageBodyReader#readFrom}.
+ The getters and setters in this context class correspond to the
+ parameters of the intercepted method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>, 
+<a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInputStream()">getInputStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the input stream of the object to be read.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInputStream(java.io.InputStream)">setInputStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;is)</code></th>
+<td class="colLast">
+<div class="block">Set the input stream of the object to be read.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.ext.InterceptorContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.ext.<a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></h3>
+<code><a href="InterceptorContext.html#getAnnotations()">getAnnotations</a>, <a href="InterceptorContext.html#getGenericType()">getGenericType</a>, <a href="InterceptorContext.html#getMediaType()">getMediaType</a>, <a href="InterceptorContext.html#getProperty(java.lang.String)">getProperty</a>, <a href="InterceptorContext.html#getPropertyNames()">getPropertyNames</a>, <a href="InterceptorContext.html#getType()">getType</a>, <a href="InterceptorContext.html#removeProperty(java.lang.String)">removeProperty</a>, <a href="InterceptorContext.html#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations</a>, <a href="InterceptorContext.html#setGenericType(java.lang.reflect.Type)">setGenericType</a>, <a href="InterceptorContext.html#setMediaType(javax.ws.rs.core.MediaType)">setMediaType</a>, <a href="InterceptorContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty</a>, <a href="InterceptorContext.html#setType(java.lang.Class)">setType</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="proceed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>proceed</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;proceed()
+        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+               <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Proceed to the next interceptor in the chain. Return the result of the
+ next interceptor invoked. Interceptors MUST explicitly call this method
+ to continue the execution chain; the call to this method in the
+ last interceptor of the chain will invoke the wrapped
+ <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>result of next interceptor invoked.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is
+                     thrown by the wrapped <code>MessageBodyReader.readFrom</code> method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyReader.readFrom</code> method.</dd>
+</dl>
+</li>
+</ul>
+<a id="getInputStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInputStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;getInputStream()</pre>
+<div class="block">Get the input stream of the object to be read. The runtime is responsible
+ for closing the input stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>input stream of the object to be read.</dd>
+</dl>
+</li>
+</ul>
+<a id="setInputStream(java.io.InputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInputStream</h4>
+<pre class="methodSignature">void&nbsp;setInputStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">InputStream</a>&nbsp;is)</pre>
+<div class="block">Set the input stream of the object to be read. For example, by wrapping
+ it with another input stream. The runtime is responsible for closing
+ the input stream that is set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>is</code> - new input stream.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get mutable map of HTTP headers.
+ <p>
+ Note that while the headers are mutable, a <a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>reader interceptor</code></a>
+ should typically roll-back any header modifications once the call to <a href="#proceed()"><code>context.proceed()</code></a> returns, to avoid externally visible side-effects of the interceptor
+ invocation.
+ </p></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of HTTP headers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderInterceptorContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html b/apidocs/2.1.6/javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html
new file mode 100644
index 0000000..b04ed6d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.HeaderDelegate.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface RuntimeDelegate.HeaderDelegate" class="title">Interface RuntimeDelegate.HeaderDelegate&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - an type that corresponds to the value of a HTTP header.</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">RuntimeDelegate.HeaderDelegate&lt;T&gt;</span></pre>
+<div class="block">Defines the contract for a delegate that is responsible for
+ converting between the String form of a HTTP header and
+ the corresponding type <code>T</code>.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#fromString(java.lang.String)">fromString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(T)">toString</a></span>&#8203;(<a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&nbsp;value)</code></th>
+<td class="colLast">
+<div class="block">Convert the supplied value to a String.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="fromString(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fromString</h4>
+<pre class="methodSignature"><a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&nbsp;fromString&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;value)</pre>
+<div class="block">Parse the supplied value and create an instance of <code>T</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the string value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the newly created instance of <code>T</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied string cannot be
+                                  parsed or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="toString(java.lang.Object)">
+<!--   -->
+</a><a id="toString(T)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString&#8203;(<a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&nbsp;value)</pre>
+<div class="block">Convert the supplied value to a String.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - the value of type <code>T</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a String representation of the value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if the supplied object cannot be
+                                  serialized or is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.HeaderDelegate.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/RuntimeDelegate.html b/apidocs/2.1.6/javax/ws/rs/ext/RuntimeDelegate.html
new file mode 100644
index 0000000..ded181f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/RuntimeDelegate.html
@@ -0,0 +1,609 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>RuntimeDelegate (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RuntimeDelegate (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":9,"i7":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Class RuntimeDelegate" class="title">Class RuntimeDelegate</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.ext.RuntimeDelegate</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public abstract class <span class="typeNameLabel">RuntimeDelegate</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block">Implementations of this API provide a concrete subclass of RuntimeDelegate and
+ various API methods defer to methods of RuntimeDelegate for their
+ functionality. Regular users of the API are not expected to use this class
+ directly and overriding an implementation of this class with a user supplied
+ subclass may cause unexpected behavior.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>1.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Paul Sandoz, Marc Hadley</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;<a href="RuntimeDelegate.HeaderDelegate.html" title="type parameter in RuntimeDelegate.HeaderDelegate">T</a>&gt;</span></code></th>
+<td class="colLast">
+<div class="block">Defines the contract for a delegate that is responsible for
+ converting between the String form of a HTTP header and
+ the corresponding type <code>T</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAXRS_RUNTIME_DELEGATE_PROPERTY">JAXRS_RUNTIME_DELEGATE_PROPERTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Name of the property identifying the <a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext"><code>RuntimeDelegate</code></a> implementation
+ to be returned from <a href="#getInstance()"><code>getInstance()</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">RuntimeDelegate</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Allows custom implementations to extend the <code>RuntimeDelegate</code> class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createEndpoint(javax.ws.rs.core.Application,java.lang.Class)">createEndpoint</a></span>&#8203;(<a href="../core/Application.html" title="class in javax.ws.rs.core">Application</a>&nbsp;application,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;endpointType)</code></th>
+<td class="colLast">
+<div class="block">Create a configured instance of the supplied endpoint type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;<a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createHeaderDelegate(java.lang.Class)">createHeaderDelegate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Obtain an instance of a <a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>abstract <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createLinkBuilder()">createLinkBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>abstract <a href="../core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createResponseBuilder()">createResponseBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>abstract <a href="../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createUriBuilder()">createUriBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>abstract <a href="../core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#createVariantListBuilder()">createVariantListBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Create a new instance of a <a href="../core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>static <a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInstance(javax.ws.rs.ext.RuntimeDelegate)">setInstance</a></span>&#8203;(<a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a>&nbsp;rd)</code></th>
+<td class="colLast">
+<div class="block">Set the runtime delegate that will be used by classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="JAXRS_RUNTIME_DELEGATE_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JAXRS_RUNTIME_DELEGATE_PROPERTY</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> JAXRS_RUNTIME_DELEGATE_PROPERTY</pre>
+<div class="block">Name of the property identifying the <a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext"><code>RuntimeDelegate</code></a> implementation
+ to be returned from <a href="#getInstance()"><code>getInstance()</code></a>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.ext.RuntimeDelegate.JAXRS_RUNTIME_DELEGATE_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RuntimeDelegate</h4>
+<pre>protected&nbsp;RuntimeDelegate()</pre>
+<div class="block">Allows custom implementations to extend the <code>RuntimeDelegate</code> class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getInstance()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstance</h4>
+<pre class="methodSignature">public static&nbsp;<a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a>&nbsp;getInstance()</pre>
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance. If an instance had not already been
+ created and set via <a href="#setInstance(javax.ws.rs.ext.RuntimeDelegate)"><code>setInstance(RuntimeDelegate)</code></a>, the first
+ invocation will create an instance which will then be cached for future use.
+
+ <p>
+ The algorithm used to locate the RuntimeDelegate subclass to use consists
+ of the following steps:
+ </p>
+ <ul>
+ <li>
+ If a resource with the name of <code>META-INF/services/javax.ws.rs.ext.RuntimeDelegate</code>
+ exists, then its first line, if present, is used as the UTF-8 encoded
+ name of the implementation class.
+ </li>
+ <li>
+ If the $java.home/lib/jaxrs.properties file exists and it is readable by
+ the <code>java.util.Properties.load(InputStream)</code> method and it contains
+ an entry whose key is <code>javax.ws.rs.ext.RuntimeDelegate</code>, then the value of
+ that entry is used as the name of the implementation class.
+ </li>
+ <li>
+ If a system property with the name <code>javax.ws.rs.ext.RuntimeDelegate</code>
+ is defined, then its value is used as the name of the implementation class.
+ </li>
+ <li>
+ Finally, a default implementation class name is used.
+ </li>
+ </ul></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of <code>RuntimeDelegate</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="setInstance(javax.ws.rs.ext.RuntimeDelegate)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setInstance</h4>
+<pre class="methodSignature">public static&nbsp;void&nbsp;setInstance&#8203;(<a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a>&nbsp;rd)</pre>
+<div class="block">Set the runtime delegate that will be used by classes. If this method
+ is not called prior to <a href="#getInstance()"><code>getInstance()</code></a> then an implementation will
+ be sought as described in <a href="#getInstance()"><code>getInstance()</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rd</code> - the runtime delegate instance</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang" class="externalLink">SecurityException</a></code> - if there is a security manager and the permission
+                           ReflectPermission("suppressAccessChecks") has not been granted.</dd>
+</dl>
+</li>
+</ul>
+<a id="createUriBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createUriBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/UriBuilder.html" title="class in javax.ws.rs.core">UriBuilder</a>&nbsp;createUriBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>UriBuilder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/UriBuilder.html" title="class in javax.ws.rs.core"><code>UriBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createResponseBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createResponseBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core">Response.ResponseBuilder</a>&nbsp;createResponseBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>ResponseBuilder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><code>Response.ResponseBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createVariantListBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createVariantListBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core">Variant.VariantListBuilder</a>&nbsp;createVariantListBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>VariantListBuilder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><code>Variant.VariantListBuilder</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createEndpoint(javax.ws.rs.core.Application,java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createEndpoint</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;T&nbsp;createEndpoint&#8203;(<a href="../core/Application.html" title="class in javax.ws.rs.core">Application</a>&nbsp;application,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;endpointType)
+                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a>,
+                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></pre>
+<div class="block">Create a configured instance of the supplied endpoint type. How the
+ returned endpoint instance is published is dependent on the type of
+ endpoint.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - endpoint type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>application</code> - the application configuration.</dd>
+<dd><code>endpointType</code> - the type of endpoint instance to be created.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a configured instance of the requested type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if application is null or the requested endpoint type is
+          not supported.</dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink">UnsupportedOperationException</a></code> - if the implementation supports no endpoint types.</dd>
+</dl>
+</li>
+</ul>
+<a id="createHeaderDelegate(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createHeaderDelegate</h4>
+<pre class="methodSignature">public abstract&nbsp;&lt;T&gt;&nbsp;<a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;&nbsp;createHeaderDelegate&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)
+                                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></pre>
+<div class="block">Obtain an instance of a <a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class. An
+ implementation is required to support the following values for type:
+ <a href="../core/CacheControl.html" title="class in javax.ws.rs.core"><code>CacheControl</code></a>, <a href="../core/Cookie.html" title="class in javax.ws.rs.core"><code>Cookie</code></a>,
+ <a href="../core/EntityTag.html" title="class in javax.ws.rs.core"><code>EntityTag</code></a>, <a href="../core/Link.html" title="class in javax.ws.rs.core"><code>Link</code></a>,
+ <a href="../core/NewCookie.html" title="class in javax.ws.rs.core"><code>NewCookie</code></a>, <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a>
+ and <code>java.util.Date</code>.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - header type.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - the class of the header.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an instance of <code>HeaderDelegate</code> for the supplied type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if type is <code>null</code>.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a></dd>
+</dl>
+</li>
+</ul>
+<a id="createLinkBuilder()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>createLinkBuilder</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core">Link.Builder</a>&nbsp;createLinkBuilder()</pre>
+<div class="block">Create a new instance of a <a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <code>Link.Builder</code> instance.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../core/Link.Builder.html" title="interface in javax.ws.rs.core"><code>Link.Builder</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RuntimeDelegate.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/WriterInterceptor.html b/apidocs/2.1.6/javax/ws/rs/ext/WriterInterceptor.html
new file mode 100644
index 0000000..deef51a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/WriterInterceptor.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>WriterInterceptor (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInterceptor (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptor.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface WriterInterceptor" class="title">Interface WriterInterceptor</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">WriterInterceptor</span></pre>
+<div class="block">Interface for message body writer interceptors that wrap around calls
+ to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.
+
+ <p>
+ Providers implementing <code>WriterInterceptor</code> contract must be either programmatically
+ registered in an API runtime or must be annotated with
+ <a href="Provider.html" title="annotation in javax.ws.rs.ext"><code>&#64;Provider</code></a> annotation to be automatically discovered
+ by the runtime during a provider scanning phase.
+ Message body interceptor instances may also be discovered and
+ bound <a href="../container/DynamicFeature.html" title="interface in javax.ws.rs.container"><code>dynamically</code></a> to particular resource methods.
+ </p></div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke, Marek Potociar</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo</a></span>&#8203;(<a href="WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>aroundWriteTo</h4>
+<pre class="methodSignature">void&nbsp;aroundWriteTo&#8203;(<a href="WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)
+            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+                   <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Interceptor method wrapping calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.
+ The parameters of the wrapped method called are available from <code>context</code>.
+ Implementations of this method SHOULD explicitly call
+ <a href="WriterInterceptorContext.html#proceed()"><code>WriterInterceptorContext.proceed()</code></a> to invoke the next interceptor in the chain,
+ and ultimately the wrapped <code>MessageBodyWriter.writeTo</code> method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - invocation context.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped
+                             <code>MessageBodyWriter.writeTo</code> method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyWriter.writeTo</code> method.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptor.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/WriterInterceptorContext.html b/apidocs/2.1.6/javax/ws/rs/ext/WriterInterceptorContext.html
new file mode 100644
index 0000000..52741ce
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/WriterInterceptorContext.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>WriterInterceptorContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterInterceptorContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptorContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.ext</a></div>
+<h2 title="Interface WriterInterceptorContext" class="title">Interface WriterInterceptorContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">WriterInterceptorContext</span>
+extends <a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></pre>
+<div class="block">Context class used by <a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ to intercept calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.
+ The getters and setters in this context class correspond to the
+ parameters of the intercepted method.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.0</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Santiago Pericas-Geertsen, Bill Burke</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>, 
+<a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEntity()">getEntity</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get object to be written as HTTP entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHeaders()">getHeaders</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get mutable map of HTTP headers.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOutputStream()">getOutputStream</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the output stream for the object to be written.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#proceed()">proceed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Proceed to the next interceptor in the chain.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEntity(java.lang.Object)">setEntity</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</code></th>
+<td class="colLast">
+<div class="block">Update object to be written as HTTP entity.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setOutputStream(java.io.OutputStream)">setOutputStream</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;os)</code></th>
+<td class="colLast">
+<div class="block">Set a new output stream for the object to be written.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.ext.InterceptorContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.ext.<a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></h3>
+<code><a href="InterceptorContext.html#getAnnotations()">getAnnotations</a>, <a href="InterceptorContext.html#getGenericType()">getGenericType</a>, <a href="InterceptorContext.html#getMediaType()">getMediaType</a>, <a href="InterceptorContext.html#getProperty(java.lang.String)">getProperty</a>, <a href="InterceptorContext.html#getPropertyNames()">getPropertyNames</a>, <a href="InterceptorContext.html#getType()">getType</a>, <a href="InterceptorContext.html#removeProperty(java.lang.String)">removeProperty</a>, <a href="InterceptorContext.html#setAnnotations(java.lang.annotation.Annotation%5B%5D)">setAnnotations</a>, <a href="InterceptorContext.html#setGenericType(java.lang.reflect.Type)">setGenericType</a>, <a href="InterceptorContext.html#setMediaType(javax.ws.rs.core.MediaType)">setMediaType</a>, <a href="InterceptorContext.html#setProperty(java.lang.String,java.lang.Object)">setProperty</a>, <a href="InterceptorContext.html#setType(java.lang.Class)">setType</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="proceed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>proceed</h4>
+<pre class="methodSignature">void&nbsp;proceed()
+      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a>,
+             <a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></pre>
+<div class="block">Proceed to the next interceptor in the chain.
+
+ Interceptors MUST explicitly call this method to continue the execution chain;
+ the call to this method in the last interceptor of the chain will invoke
+ the wrapped <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a></code> - if an IO error arises or is thrown by the wrapped
+                             <code>MessageBodyWriter.writeTo</code> method.</dd>
+<dd><code><a href="../WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></code> - thrown by the wrapped <code>MessageBodyWriter.writeTo</code> method.</dd>
+</dl>
+</li>
+</ul>
+<a id="getEntity()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEntity</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getEntity()</pre>
+<div class="block">Get object to be written as HTTP entity.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>object to be written as HTTP entity.</dd>
+</dl>
+</li>
+</ul>
+<a id="setEntity(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setEntity</h4>
+<pre class="methodSignature">void&nbsp;setEntity&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;entity)</pre>
+<div class="block">Update object to be written as HTTP entity.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>entity</code> - new object to be written.</dd>
+</dl>
+</li>
+</ul>
+<a id="getOutputStream()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputStream</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;getOutputStream()</pre>
+<div class="block">Get the output stream for the object to be written. The runtime
+ is responsible for closing the output stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output stream for the object to be written.</dd>
+</dl>
+</li>
+</ul>
+<a id="setOutputStream(java.io.OutputStream)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOutputStream</h4>
+<pre class="methodSignature">void&nbsp;setOutputStream&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io" class="externalLink">OutputStream</a>&nbsp;os)</pre>
+<div class="block">Set a new output stream for the object to be written. For example, by wrapping
+ it with another output stream. The runtime is responsible for closing
+ the output stream that is set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>os</code> - new output stream for the object to be written.</dd>
+</dl>
+</li>
+</ul>
+<a id="getHeaders()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHeaders</h4>
+<pre class="methodSignature"><a href="../core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</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" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getHeaders()</pre>
+<div class="block">Get mutable map of HTTP headers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>map of HTTP headers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterInterceptorContext.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ContextResolver.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ContextResolver.html
new file mode 100644
index 0000000..35e9ef8
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ContextResolver.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.ContextResolver (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.ContextResolver (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContextResolver.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.ContextResolver" class="title">Uses of Interface<br>javax.ws.rs.ext.ContextResolver</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)">getContextResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;contextType,
+                  <a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a context resolver for a particular type of context and media type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ContextResolver.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ExceptionMapper.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ExceptionMapper.html
new file mode 100644
index 0000000..b28e11a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ExceptionMapper.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.ExceptionMapper (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.ExceptionMapper (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExceptionMapper.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.ExceptionMapper" class="title">Uses of Interface<br>javax.ws.rs.ext.ExceptionMapper</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;<br><a href="../ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getExceptionMapper(java.lang.Class)">getExceptionMapper</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Get an exception mapping provider for a particular class of exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ExceptionMapper.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/InterceptorContext.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/InterceptorContext.html
new file mode 100644
index 0000000..535532c
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/InterceptorContext.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.InterceptorContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.InterceptorContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InterceptorContext.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.InterceptorContext" class="title">Uses of Interface<br>javax.ws.rs.ext.InterceptorContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subinterfaces of <a href="../InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="../ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>
+ to intercept calls to (@link javax.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></span></code></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="../WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ to intercept calls to <a href="../MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InterceptorContext.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/MessageBodyReader.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/MessageBodyReader.html
new file mode 100644
index 0000000..4243d89
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/MessageBodyReader.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.MessageBodyReader (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.MessageBodyReader (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyReader.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.MessageBodyReader" class="title">Uses of Interface<br>javax.ws.rs.ext.MessageBodyReader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyReader</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body reader that matches a set of criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyReader.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/MessageBodyWriter.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/MessageBodyWriter.html
new file mode 100644
index 0000000..2e7af8e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/MessageBodyWriter.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.MessageBodyWriter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.MessageBodyWriter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyWriter.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.MessageBodyWriter" class="title">Uses of Interface<br>javax.ws.rs.ext.MessageBodyWriter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Providers.</span><code><span class="memberNameLink"><a href="../Providers.html#getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType)">getMessageBodyWriter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations,
+                    <a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Get a message body writer that matches a set of criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../MessageBodyWriter.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverter.Lazy.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverter.Lazy.html
new file mode 100644
index 0000000..a2bdaf5
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverter.Lazy.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ext.ParamConverter.Lazy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ext.ParamConverter.Lazy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ext.ParamConverter.Lazy" class="title">Uses of Class<br>javax.ws.rs.ext.ParamConverter.Lazy</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ext.ParamConverter.Lazy</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverter.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverter.html
new file mode 100644
index 0000000..6f8b497
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverter.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.ParamConverter (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.ParamConverter (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.ParamConverter" class="title">Uses of Interface<br>javax.ws.rs.ext.ParamConverter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;<a href="../ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ParamConverterProvider.</span><code><span class="memberNameLink"><a href="../ParamConverterProvider.html#getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D)">getConverter</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;rawType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;genericType,
+            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>[]&nbsp;annotations)</code></th>
+<td class="colLast">
+<div class="block">Obtain a <a href="../ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> that can provide from/to string conversion
+ for an instance of a particular Java type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverter.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverterProvider.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverterProvider.html
new file mode 100644
index 0000000..c5f5983
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ParamConverterProvider.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.ParamConverterProvider (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.ParamConverterProvider (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverterProvider.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.ParamConverterProvider" class="title">Uses of Interface<br>javax.ws.rs.ext.ParamConverterProvider</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ext.ParamConverterProvider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ParamConverterProvider.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/Provider.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/Provider.html
new file mode 100644
index 0000000..221dd3d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/Provider.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ext.Provider (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ext.Provider (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Provider.html" title="annotation in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ext.Provider" class="title">Uses of Class<br>javax.ws.rs.ext.Provider</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ext.Provider</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Provider.html" title="annotation in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/Providers.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/Providers.html
new file mode 100644
index 0000000..684b3b9
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/Providers.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.Providers (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.Providers (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Providers.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.Providers" class="title">Uses of Interface<br>javax.ws.rs.ext.Providers</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ext.Providers</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Providers.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ReaderInterceptor.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ReaderInterceptor.html
new file mode 100644
index 0000000..b94e068
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ReaderInterceptor.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.ReaderInterceptor (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.ReaderInterceptor (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptor.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.ReaderInterceptor" class="title">Uses of Interface<br>javax.ws.rs.ext.ReaderInterceptor</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ext.ReaderInterceptor</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptor.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/ReaderInterceptorContext.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ReaderInterceptorContext.html
new file mode 100644
index 0000000..1f8abfe
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/ReaderInterceptorContext.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.ReaderInterceptorContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.ReaderInterceptorContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.ReaderInterceptorContext" class="title">Uses of Interface<br>javax.ws.rs.ext.ReaderInterceptorContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> with parameters of type <a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">ReaderInterceptor.</span><code><span class="memberNameLink"><a href="../ReaderInterceptor.html#aroundReadFrom(javax.ws.rs.ext.ReaderInterceptorContext)">aroundReadFrom</a></span>&#8203;(<a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/RuntimeDelegate.HeaderDelegate.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/RuntimeDelegate.HeaderDelegate.html
new file mode 100644
index 0000000..80abf9a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/RuntimeDelegate.HeaderDelegate.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate" class="title">Uses of Interface<br>javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract &lt;T&gt;&nbsp;<a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../RuntimeDelegate.html#createHeaderDelegate(java.lang.Class)">createHeaderDelegate</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Obtain an instance of a <a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><code>RuntimeDelegate.HeaderDelegate</code></a> for the supplied class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/RuntimeDelegate.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/RuntimeDelegate.html
new file mode 100644
index 0000000..3792b78
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/RuntimeDelegate.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.ext.RuntimeDelegate (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.ext.RuntimeDelegate (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.ext.RuntimeDelegate" class="title">Uses of Class<br>javax.ws.rs.ext.RuntimeDelegate</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> that return <a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../RuntimeDelegate.html#getInstance()">getInstance</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Obtain a <code>RuntimeDelegate</code> instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> with parameters of type <a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">RuntimeDelegate.</span><code><span class="memberNameLink"><a href="../RuntimeDelegate.html#setInstance(javax.ws.rs.ext.RuntimeDelegate)">setInstance</a></span>&#8203;(<a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a>&nbsp;rd)</code></th>
+<td class="colLast">
+<div class="block">Set the runtime delegate that will be used by classes.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../RuntimeDelegate.html" title="class in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/WriterInterceptor.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/WriterInterceptor.html
new file mode 100644
index 0000000..637ad75
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/WriterInterceptor.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.WriterInterceptor (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.WriterInterceptor (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptor.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.WriterInterceptor" class="title">Uses of Interface<br>javax.ws.rs.ext.WriterInterceptor</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.ext.WriterInterceptor</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptor.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/class-use/WriterInterceptorContext.html b/apidocs/2.1.6/javax/ws/rs/ext/class-use/WriterInterceptorContext.html
new file mode 100644
index 0000000..484cfa1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/class-use/WriterInterceptorContext.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.ext.WriterInterceptorContext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.ext.WriterInterceptorContext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.ext.WriterInterceptorContext" class="title">Uses of Interface<br>javax.ws.rs.ext.WriterInterceptorContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<h3>Uses of <a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a> in <a href="../package-summary.html">javax.ws.rs.ext</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.ext</a> with parameters of type <a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">WriterInterceptor.</span><code><span class="memberNameLink"><a href="../WriterInterceptor.html#aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext)">aroundWriteTo</a></span>&#8203;(<a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a>&nbsp;context)</code></th>
+<td class="colLast">
+<div class="block">Interceptor method wrapping calls to <a href="../MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a> method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/package-summary.html b/apidocs/2.1.6/javax/ws/rs/ext/package-summary.html
new file mode 100644
index 0000000..bbaa1d1
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/package-summary.html
@@ -0,0 +1,275 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.ext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.ext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.ws.rs.ext</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ContextResolver.html" title="interface in javax.ws.rs.ext">ContextResolver</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that supplies context information to resource
+ classes and other providers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext">ExceptionMapper</a>&lt;E extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that maps Java exceptions to <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="InterceptorContext.html" title="interface in javax.ws.rs.ext">InterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context shared by message body interceptors that can be used to wrap
+ calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext">MessageBodyReader</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a stream to a
+ Java type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext">MessageBodyWriter</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a Java type to a
+ stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ParamConverter.html" title="interface in javax.ws.rs.ext">ParamConverter</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Defines a contract for a delegate responsible for converting between a
+ <code>String</code> form of a message parameter value and the corresponding custom
+ Java type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ParamConverterProvider.html" title="interface in javax.ws.rs.ext">ParamConverterProvider</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider of <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>ParamConverter</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Providers.html" title="interface in javax.ws.rs.ext">Providers</a></th>
+<td class="colLast">
+<div class="block">An injectable interface providing runtime lookup of provider instances.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext">ReaderInterceptor</a></th>
+<td class="colLast">
+<div class="block">Interface for message body reader interceptors that wrap around calls
+ to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext">ReaderInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>
+ to intercept calls to (@link javax.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a>&lt;T&gt;</th>
+<td class="colLast">
+<div class="block">Defines the contract for a delegate that is responsible for
+ converting between the String form of a HTTP header and
+ the corresponding type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext">WriterInterceptor</a></th>
+<td class="colLast">
+<div class="block">Interface for message body writer interceptors that wrap around calls
+ to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="WriterInterceptorContext.html" title="interface in javax.ws.rs.ext">WriterInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ to intercept calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext">RuntimeDelegate</a></th>
+<td class="colLast">
+<div class="block">Implementations of this API provide a concrete subclass of RuntimeDelegate and
+ various API methods defer to methods of RuntimeDelegate for their
+ functionality.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext">ParamConverter.Lazy</a></th>
+<td class="colLast">
+<div class="block">Mandates that a conversion of any <a href="../DefaultValue.html" title="annotation in javax.ws.rs"><code>default value</code></a> delegated
+ to a <a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><code>parameter converter</code></a> annotated with <code>@Lazy</code>
+ annotation SHOULD occur only once the value is actually required (e.g.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Provider.html" title="annotation in javax.ws.rs.ext">Provider</a></th>
+<td class="colLast">
+<div class="block">Marks an implementation of an extension interface that should be discoverable
+ by the runtime during a provider scanning phase.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/package-tree.html b/apidocs/2.1.6/javax/ws/rs/ext/package-tree.html
new file mode 100644
index 0000000..b28e433
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/package-tree.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.ext Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.ext Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.ws.rs.ext</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">javax.ws.rs.ext.<a href="RuntimeDelegate.html" title="class in javax.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.ext.<a href="ContextResolver.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ContextResolver</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="ExceptionMapper.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ExceptionMapper</span></a>&lt;E&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="InterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">InterceptorContext</span></a>
+<ul>
+<li class="circle">javax.ws.rs.ext.<a href="ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ReaderInterceptorContext</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="WriterInterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">WriterInterceptorContext</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.ext.<a href="MessageBodyReader.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">MessageBodyReader</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">MessageBodyWriter</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="ParamConverter.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ParamConverter</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ParamConverterProvider</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="Providers.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">Providers</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ReaderInterceptor</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate.HeaderDelegate</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">WriterInterceptor</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.ext.<a href="ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext"><span class="typeNameLink">ParamConverter.Lazy</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.ext.<a href="Provider.html" title="annotation in javax.ws.rs.ext"><span class="typeNameLink">Provider</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/ext/package-use.html b/apidocs/2.1.6/javax/ws/rs/ext/package-use.html
new file mode 100644
index 0000000..1437bf3
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/ext/package-use.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Package javax.ws.rs.ext (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.ws.rs.ext (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.ws.rs.ext" class="title">Uses of Package<br>javax.ws.rs.ext</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="package-summary.html">javax.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.ext</a> used by <a href="package-summary.html">javax.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ContextResolver.html#javax.ws.rs.ext">ContextResolver</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that supplies context information to resource
+ classes and other providers.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ExceptionMapper.html#javax.ws.rs.ext">ExceptionMapper</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that maps Java exceptions to <a href="../core/Response.html" title="class in javax.ws.rs.core"><code>Response</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/InterceptorContext.html#javax.ws.rs.ext">InterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context shared by message body interceptors that can be used to wrap
+ calls to <a href="MessageBodyReader.html#readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"><code>MessageBodyReader.readFrom(java.lang.Class&lt;T&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.String&gt;, java.io.InputStream)</code></a> and
+ <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageBodyReader.html#javax.ws.rs.ext">MessageBodyReader</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a stream to a
+ Java type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/MessageBodyWriter.html#javax.ws.rs.ext">MessageBodyWriter</a></th>
+<td class="colLast">
+<div class="block">Contract for a provider that supports the conversion of a Java type to a
+ stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ParamConverter.html#javax.ws.rs.ext">ParamConverter</a></th>
+<td class="colLast">
+<div class="block">Defines a contract for a delegate responsible for converting between a
+ <code>String</code> form of a message parameter value and the corresponding custom
+ Java type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ReaderInterceptorContext.html#javax.ws.rs.ext">ReaderInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><code>ReaderInterceptor</code></a>
+ to intercept calls to (@link javax.ws.rs.ext.MessageBodyReader#readFrom}.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeDelegate.html#javax.ws.rs.ext">RuntimeDelegate</a></th>
+<td class="colLast">
+<div class="block">Implementations of this API provide a concrete subclass of RuntimeDelegate and
+ various API methods defer to methods of RuntimeDelegate for their
+ functionality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeDelegate.HeaderDelegate.html#javax.ws.rs.ext">RuntimeDelegate.HeaderDelegate</a></th>
+<td class="colLast">
+<div class="block">Defines the contract for a delegate that is responsible for
+ converting between the String form of a HTTP header and
+ the corresponding type <code>T</code>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WriterInterceptorContext.html#javax.ws.rs.ext">WriterInterceptorContext</a></th>
+<td class="colLast">
+<div class="block">Context class used by <a href="WriterInterceptor.html" title="interface in javax.ws.rs.ext"><code>WriterInterceptor</code></a>
+ to intercept calls to <a href="MessageBodyWriter.html#writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation%5B%5D,javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"><code>MessageBodyWriter.writeTo(T, java.lang.Class&lt;?&gt;, java.lang.reflect.Type, java.lang.annotation.Annotation[], javax.ws.rs.core.MediaType, javax.ws.rs.core.MultivaluedMap&lt;java.lang.String, java.lang.Object&gt;, java.io.OutputStream)</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/package-summary.html b/apidocs/2.1.6/javax/ws/rs/package-summary.html
new file mode 100644
index 0000000..86b110e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/package-summary.html
@@ -0,0 +1,470 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.ws.rs</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources. For example:
+ <pre>
+ &#064;Path("widgets/{widgetid}")
+ &#064;Consumes("application/widgets+xml")
+ &#064;Produces("application/widgets+xml")
+ public class WidgetResource {
+
+     &#064;GET
+     public String getWidget(&#064;PathParam("widgetid") String id) {
+         return getWidgetAsXml(id);
+     }
+
+     &#064;PUT
+     public void updateWidget(&#064;PathParam("widgetid") String id,
+                              Source update) {
+         updateWidgetFromXml(id, update);
+     }
+
+     ...
+ }
+ </pre></div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Priorities.html" title="class in javax.ws.rs">Priorities</a></th>
+<td class="colLast">
+<div class="block">A collection of built-in priority constants for the components that are supposed to be
+ ordered based on their <code>javax.annotation.Priority</code> class-level annotation value when used
+ or applied by the runtime.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RuntimeType.html" title="enum in javax.ws.rs">RuntimeType</a></th>
+<td class="colLast">
+<div class="block">Enumeration of runtime types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="BadRequestException.html" title="class in javax.ws.rs">BadRequestException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a <a href="core/Response.Status.html#BAD_REQUEST"><code>bad client request</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a client request error
+ (HTTP <code>4xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ForbiddenException.html" title="class in javax.ws.rs">ForbiddenException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that an access to a resource requested by
+ a client has been <a href="core/Response.Status.html#FORBIDDEN"><code>forbidden</code></a>
+ by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="InternalServerErrorException.html" title="class in javax.ws.rs">InternalServerErrorException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating an <a href="core/Response.Status.html#INTERNAL_SERVER_ERROR"><code>internal server error</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NotAcceptableException.html" title="class in javax.ws.rs">NotAcceptableException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that a client request is
+ <a href="core/Response.Status.html#NOT_ACCEPTABLE"><code>not acceptable</code></a>
+ by the server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NotAllowedException.html" title="class in javax.ws.rs">NotAllowedException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a client requesting a resource method that is
+ <a href="core/Response.Status.html#METHOD_NOT_ALLOWED"><code>not allowed</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NotAuthorizedException.html" title="class in javax.ws.rs">NotAuthorizedException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating request authorization failure caused by one of the following
+ scenarios:
+ 
+ 
+ a client did not send the required authorization credentials to access the requested resource,
+ i.e.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="NotFoundException.html" title="class in javax.ws.rs">NotFoundException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating a resource requested by a client was
+ <a href="core/Response.Status.html#NOT_FOUND"><code>not found</code></a> on the server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NotSupportedException.html" title="class in javax.ws.rs">NotSupportedException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the client request entity media type is
+ <a href="core/Response.Status.html#UNSUPPORTED_MEDIA_TYPE"><code>not supported</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></th>
+<td class="colLast">
+<div class="block">A base runtime processing exception.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="RedirectionException.html" title="class in javax.ws.rs">RedirectionException</a></th>
+<td class="colLast">
+<div class="block">A runtime application exception indicating a request redirection
+ (HTTP <code>3xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a server error
+ (HTTP <code>5xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ServiceUnavailableException.html" title="class in javax.ws.rs">ServiceUnavailableException</a></th>
+<td class="colLast">
+<div class="block">A runtime exception indicating that the requested resource
+ <a href="core/Response.Status.html#SERVICE_UNAVAILABLE"><code>cannot be served</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ApplicationPath.html" title="annotation in javax.ws.rs">ApplicationPath</a></th>
+<td class="colLast">
+<div class="block">Identifies the application path that serves as the base URI
+ for all resource URIs provided by <a href="Path.html" title="annotation in javax.ws.rs"><code>Path</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="BeanParam.html" title="annotation in javax.ws.rs">BeanParam</a></th>
+<td class="colLast">
+<div class="block">The annotation that may be used to inject a custom "parameter aggregator" value object
+ into a resource class field, property or resource method parameter.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="ConstrainedTo.html" title="annotation in javax.ws.rs">ConstrainedTo</a></th>
+<td class="colLast">
+<div class="block">Indicates the run-time context in which an annotated provider
+ is applicable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Consumes.html" title="annotation in javax.ws.rs">Consumes</a></th>
+<td class="colLast">
+<div class="block">Defines the media types that the methods of a resource class or
+ <a href="ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><code>MessageBodyReader</code></a> can accept.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="CookieParam.html" title="annotation in javax.ws.rs">CookieParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value of a HTTP cookie to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="DefaultValue.html" title="annotation in javax.ws.rs">DefaultValue</a></th>
+<td class="colLast">
+<div class="block">Defines the default value of request meta-data that is bound using one of the
+ following annotations:
+ <a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>,
+ <a href="QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>,
+ <a href="CookieParam.html" title="annotation in javax.ws.rs"><code>CookieParam</code></a>,
+ <a href="FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a>,
+ or <a href="HeaderParam.html" title="annotation in javax.ws.rs"><code>HeaderParam</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="DELETE.html" title="annotation in javax.ws.rs">DELETE</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP DELETE requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Encoded.html" title="annotation in javax.ws.rs">Encoded</a></th>
+<td class="colLast">
+<div class="block">Disables automatic decoding of parameter values bound using <a href="QueryParam.html" title="annotation in javax.ws.rs"><code>QueryParam</code></a>,
+ <a href="PathParam.html" title="annotation in javax.ws.rs"><code>PathParam</code></a>, <a href="FormParam.html" title="annotation in javax.ws.rs"><code>FormParam</code></a> or <a href="MatrixParam.html" title="annotation in javax.ws.rs"><code>MatrixParam</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="FormParam.html" title="annotation in javax.ws.rs">FormParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a form parameter contained within a request entity body
+ to a resource method parameter.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="GET.html" title="annotation in javax.ws.rs">GET</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP GET requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HEAD.html" title="annotation in javax.ws.rs">HEAD</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP HEAD requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="HeaderParam.html" title="annotation in javax.ws.rs">HeaderParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a HTTP header to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="HttpMethod.html" title="annotation in javax.ws.rs">HttpMethod</a></th>
+<td class="colLast">
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="MatrixParam.html" title="annotation in javax.ws.rs">MatrixParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a URI matrix parameter to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="NameBinding.html" title="annotation in javax.ws.rs">NameBinding</a></th>
+<td class="colLast">
+<div class="block">Meta-annotation used to create name binding annotations for filters
+ and interceptors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OPTIONS.html" title="annotation in javax.ws.rs">OPTIONS</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP OPTIONS requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PATCH.html" title="annotation in javax.ws.rs">PATCH</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PATCH requests.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Path.html" title="annotation in javax.ws.rs">Path</a></th>
+<td class="colLast">
+<div class="block">Identifies the URI path that a resource class or class method will serve
+ requests for.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="PathParam.html" title="annotation in javax.ws.rs">PathParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value of a URI template parameter or a path segment
+ containing the template parameter to a resource method parameter, resource
+ class field, or resource class
+ bean property.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="POST.html" title="annotation in javax.ws.rs">POST</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP POST requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="Produces.html" title="annotation in javax.ws.rs">Produces</a></th>
+<td class="colLast">
+<div class="block">Defines the media type(s) that the methods of a resource class or
+ <a href="ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> can produce.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="PUT.html" title="annotation in javax.ws.rs">PUT</a></th>
+<td class="colLast">
+<div class="block">Indicates that the annotated method responds to HTTP PUT requests.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="QueryParam.html" title="annotation in javax.ws.rs">QueryParam</a></th>
+<td class="colLast">
+<div class="block">Binds the value(s) of a HTTP query parameter to a resource method parameter,
+ resource class field, or resource class bean property.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/package-tree.html b/apidocs/2.1.6/javax/ws/rs/package-tree.html
new file mode 100644
index 0000000..c8d4966
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/package-tree.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.ws.rs</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="Priorities.html" title="class in javax.ws.rs"><span class="typeNameLink">Priorities</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="ProcessingException.html" title="class in javax.ws.rs"><span class="typeNameLink">ProcessingException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="WebApplicationException.html" title="class in javax.ws.rs"><span class="typeNameLink">WebApplicationException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="ClientErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">ClientErrorException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="BadRequestException.html" title="class in javax.ws.rs"><span class="typeNameLink">BadRequestException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="ForbiddenException.html" title="class in javax.ws.rs"><span class="typeNameLink">ForbiddenException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="NotAcceptableException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAcceptableException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="NotAllowedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAllowedException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="NotAuthorizedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAuthorizedException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="NotFoundException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotFoundException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="NotSupportedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotSupportedException</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.<a href="RedirectionException.html" title="class in javax.ws.rs"><span class="typeNameLink">RedirectionException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="ServerErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">ServerErrorException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="InternalServerErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">InternalServerErrorException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="ServiceUnavailableException.html" title="class in javax.ws.rs"><span class="typeNameLink">ServiceUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.<a href="ApplicationPath.html" title="annotation in javax.ws.rs"><span class="typeNameLink">ApplicationPath</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="BeanParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">BeanParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="ConstrainedTo.html" title="annotation in javax.ws.rs"><span class="typeNameLink">ConstrainedTo</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="Consumes.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Consumes</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="CookieParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">CookieParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="DefaultValue.html" title="annotation in javax.ws.rs"><span class="typeNameLink">DefaultValue</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="DELETE.html" title="annotation in javax.ws.rs"><span class="typeNameLink">DELETE</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="Encoded.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Encoded</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="FormParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">FormParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="GET.html" title="annotation in javax.ws.rs"><span class="typeNameLink">GET</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="HEAD.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HEAD</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="HeaderParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HeaderParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="HttpMethod.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HttpMethod</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="MatrixParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">MatrixParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="NameBinding.html" title="annotation in javax.ws.rs"><span class="typeNameLink">NameBinding</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="OPTIONS.html" title="annotation in javax.ws.rs"><span class="typeNameLink">OPTIONS</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="PATCH.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PATCH</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="Path.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Path</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="PathParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PathParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="POST.html" title="annotation in javax.ws.rs"><span class="typeNameLink">POST</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="Produces.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Produces</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="PUT.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PUT</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="QueryParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">QueryParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.lang.constant.Constable, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">javax.ws.rs.<a href="RuntimeType.html" title="enum in javax.ws.rs"><span class="typeNameLink">RuntimeType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/package-use.html b/apidocs/2.1.6/javax/ws/rs/package-use.html
new file mode 100644
index 0000000..659bea0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/package-use.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Package javax.ws.rs (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.ws.rs (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.ws.rs" class="title">Uses of Package<br>javax.ws.rs</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="package-summary.html">javax.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs">javax.ws.rs</a></th>
+<td class="colLast">
+<div class="block">High-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.client">javax.ws.rs.client</a></th>
+<td class="colLast">
+<div class="block">The Client API</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.core">javax.ws.rs.core</a></th>
+<td class="colLast">
+<div class="block">Low-level interfaces and annotations used to create RESTful service
+ resources.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.ext">javax.ws.rs.ext</a></th>
+<td class="colLast">
+<div class="block">APIs that provide extensions to the types supported by the API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs</a> used by <a href="package-summary.html">javax.ws.rs</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ClientErrorException.html#javax.ws.rs">ClientErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a client request error
+ (HTTP <code>4xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/HttpMethod.html#javax.ws.rs">HttpMethod</a></th>
+<td class="colLast">
+<div class="block">Associates the name of a HTTP method with an annotation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeType.html#javax.ws.rs">RuntimeType</a></th>
+<td class="colLast">
+<div class="block">Enumeration of runtime types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/ServerErrorException.html#javax.ws.rs">ServerErrorException</a></th>
+<td class="colLast">
+<div class="block">A base runtime application exception indicating a server error
+ (HTTP <code>5xx</code> status codes).</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebApplicationException.html#javax.ws.rs">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.client">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs</a> used by <a href="client/package-summary.html">javax.ws.rs.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/ProcessingException.html#javax.ws.rs.client">ProcessingException</a></th>
+<td class="colLast">
+<div class="block">A base runtime processing exception.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.core">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs</a> used by <a href="core/package-summary.html">javax.ws.rs.core</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/RuntimeType.html#javax.ws.rs.core">RuntimeType</a></th>
+<td class="colLast">
+<div class="block">Enumeration of runtime types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/WebApplicationException.html#javax.ws.rs.core">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ext">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs</a> used by <a href="ext/package-summary.html">javax.ws.rs.ext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/WebApplicationException.html#javax.ws.rs.ext">WebApplicationException</a></th>
+<td class="colLast">
+<div class="block">Runtime exception for applications.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/InboundSseEvent.html b/apidocs/2.1.6/javax/ws/rs/sse/InboundSseEvent.html
new file mode 100644
index 0000000..53d5a5e
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/InboundSseEvent.html
@@ -0,0 +1,398 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>InboundSseEvent (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InboundSseEvent (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InboundSseEvent.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface InboundSseEvent" class="title">Interface InboundSseEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">InboundSseEvent</span>
+extends <a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></pre>
+<div class="block">Inbound Server-sent event.
+ <p>
+ Used on the client side, when accepting incoming Server-sent events.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;javax.ws.rs.sse.<a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the event is empty (i.e.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData()">readData</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get the original event data as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(java.lang.Class)">readData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given Java type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(java.lang.Class,javax.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;messageType,
+        <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given Java type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(javax.ws.rs.core.GenericType)">readData</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readData(javax.ws.rs.core.GenericType,javax.ws.rs.core.MediaType)">readData</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+        <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Read event data as a given generic type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.sse.<a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#getComment()">getComment</a>, <a href="SseEvent.html#getId()">getId</a>, <a href="SseEvent.html#getName()">getName</a>, <a href="SseEvent.html#getReconnectDelay()">getReconnectDelay</a>, <a href="SseEvent.html#isReconnectDelaySet()">isReconnectDelaySet</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isEmpty()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isEmpty</h4>
+<pre class="methodSignature">boolean&nbsp;isEmpty()</pre>
+<div class="block">Check if the event is empty (i.e. does not contain any data).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if current instance does not contain any data, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;readData()</pre>
+<div class="block">Get the original event data as <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized into a string.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(java.lang.Class)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Read event data as a given Java type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - Java type to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(javax.ws.rs.core.GenericType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type)</pre>
+<div class="block">Read event data as a given generic type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - generic type to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(java.lang.Class,javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;messageType,
+               <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Read event data as a given Java type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>messageType</code> - Java type to be used for event data de-serialization.</dd>
+<dd><code>mediaType</code> - <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original cause.</dd>
+</dl>
+</li>
+</ul>
+<a id="readData(javax.ws.rs.core.GenericType,javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readData</h4>
+<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readData&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&lt;T&gt;&nbsp;type,
+               <a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Read event data as a given generic type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - generic type to be used for event data de-serialization.</dd>
+<dd><code>mediaType</code> - <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> to be used for event data de-serialization.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data de-serialized as an instance of a given type.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a></code> - when provided type can't be read. The thrown exception wraps the original cause.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InboundSseEvent.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/OutboundSseEvent.Builder.html b/apidocs/2.1.6/javax/ws/rs/sse/OutboundSseEvent.Builder.html
new file mode 100644
index 0000000..980f9f8
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/OutboundSseEvent.Builder.html
@@ -0,0 +1,479 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>OutboundSseEvent.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OutboundSseEvent.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface OutboundSseEvent.Builder" class="title">Interface OutboundSseEvent.Builder</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></dd>
+</dl>
+<hr>
+<pre>public static interface <span class="typeNameLabel">OutboundSseEvent.Builder</span></pre>
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#comment(java.lang.String)">comment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment)</code></th>
+<td class="colLast">
+<div class="block">Set comment string associated with the event.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#data(java.lang.Class,java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#data(java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#data(javax.ws.rs.core.GenericType,java.lang.Object)">data</a></span>&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and a generic java type of event data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#id(java.lang.String)">id</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;id)</code></th>
+<td class="colLast">
+<div class="block">Set the event id.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#mediaType(javax.ws.rs.core.MediaType)">mediaType</a></span>&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set the <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#name(java.lang.String)">name</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Set event name.</div>
+</td>
+</tr>
+<tr class="altColor" id="i8">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reconnectDelay(long)">reconnectDelay</a></span>&#8203;(long&nbsp;milliseconds)</code></th>
+<td class="colLast">
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait
+ before attempting to reconnect in case a connection to SSE event source is lost.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="id(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>id</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;id&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;id)</pre>
+<div class="block">Set the event id.
+ <p>
+ Will be send as a value of the SSE <code>"id"</code> field. This field is optional.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>id</code> - event id.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="name(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>name</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;name&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
+<div class="block">Set event name.
+ <p>
+ Will be send as a value of the SSE <code>"event"</code> field. This field is optional.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - event name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="reconnectDelay(long)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reconnectDelay</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;reconnectDelay&#8203;(long&nbsp;milliseconds)</pre>
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait
+ before attempting to reconnect in case a connection to SSE event source is lost.
+ <p>
+ Will be send as a value of the SSE <code>"retry"</code> field. This field is optional.
+ <p>
+ Absence of a value of this field in an <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instance
+ is indicated by <a href="SseEvent.html#RECONNECT_NOT_SET"><code>SseEvent.RECONNECT_NOT_SET</code></a> value returned from
+ <a href="SseEvent.html#getReconnectDelay()"><code>SseEvent.getReconnectDelay()</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>milliseconds</code> - reconnection delay in milliseconds. Negative values un-set the reconnection delay.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="mediaType(javax.ws.rs.core.MediaType)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mediaType</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;mediaType&#8203;(<a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</pre>
+<div class="block">Set the <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.
+ <p>
+ This information is mandatory. The default value is <a href="../core/MediaType.html#TEXT_PLAIN"><code>MediaType.TEXT_PLAIN</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>mediaType</code> - <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a> of event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>mediaType</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="comment(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>comment</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;comment&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment)</pre>
+<div class="block">Set comment string associated with the event.
+ <p>
+ The comment will be serialized with the event, before event data are serialized. If the event
+ does not contain any data, a separate "event" that contains only the comment will be sent.
+ This information is optional, provided the event data are set.
+ <p>
+ Note that multiple invocations of this method result in a previous comment being replaced with a new one.
+ To achieve multi-line comments, a multi-line comment string has to be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>comment</code> - comment string.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="data(java.lang.Class,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;data&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</pre>
+<div class="block">Set event data and java type of event data.
+ <p>
+ Type information will be used for <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> lookup.
+ <p>
+ Note that multiple invocations of this method result in previous even data being replaced with new one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - java type of supplied data. Must not be <code>null</code>.</dd>
+<dd><code>data</code> - event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case either <code>type</code> or <code>data</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="data(javax.ws.rs.core.GenericType,java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;data&#8203;(<a href="../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&nbsp;type,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</pre>
+<div class="block">Set event data and a generic java type of event data.
+ <p>
+ Type information will be used for <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> lookup.
+ <p>
+ Note that multiple invocations of this method result in previous even data being replaced with new one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - generic type of supplied data. Must not be <code>null</code>.</dd>
+<dd><code>data</code> - event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case either <code>type</code> or <code>data</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="data(java.lang.Object)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>data</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;data&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</pre>
+<div class="block">Set event data and java type of event data.
+ <p>
+ This is a convenience method that derives the event data type information from the runtime type of
+ the event data. The supplied event data may be represented as <a href="../core/GenericEntity.html" title="class in javax.ws.rs.core"><code>GenericEntity</code></a>.
+ <p>
+ Note that multiple invocations of this method result in previous even data being replaced with new one.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - event data. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated builder instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the <code>data</code> parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;build()</pre>
+<div class="block">Build <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a>.
+ <p>
+ There are two valid configurations:
+ <ul>
+ <li>if a <a href="#comment(java.lang.String)"><code>comment</code></a> is set, all other parameters are optional.
+ If event <a href="#data(java.lang.Class,java.lang.Object)"><code>data</code></a> and <a href="#mediaType(javax.ws.rs.core.MediaType)"><code>media type</code></a> is set,
+ event data will be serialized after the comment.</li>
+ <li>if a <a href="#comment(java.lang.String)"><code>comment</code></a> is not set, at least the event
+ <a href="#data(java.lang.Class,java.lang.Object)"><code>data</code></a> must be set. All other parameters are optional.</li>
+ </ul></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instance.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - when called with invalid configuration (neither a comment nor event data are set).</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/OutboundSseEvent.html b/apidocs/2.1.6/javax/ws/rs/sse/OutboundSseEvent.html
new file mode 100644
index 0000000..2bd4372
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/OutboundSseEvent.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>OutboundSseEvent (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="OutboundSseEvent (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface OutboundSseEvent" class="title">Interface OutboundSseEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">OutboundSseEvent</span>
+extends <a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></pre>
+<div class="block">Representation of a single outbound Server-sent event.
+ <p>
+ Used on the server side, when creating and sending an event to a client or when broadcasting.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a id="fields.inherited.from.class.javax.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;javax.ws.rs.sse.<a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getData()">getData</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get event data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGenericType()">getGenericType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get generic data type.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMediaType()">getMediaType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType()">getType</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get data type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="methods.inherited.from.class.javax.ws.rs.sse.SseEvent">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;javax.ws.rs.sse.<a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></h3>
+<code><a href="SseEvent.html#getComment()">getComment</a>, <a href="SseEvent.html#getId()">getId</a>, <a href="SseEvent.html#getName()">getName</a>, <a href="SseEvent.html#getReconnectDelay()">getReconnectDelay</a>, <a href="SseEvent.html#isReconnectDelaySet()">isReconnectDelaySet</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;getType()</pre>
+<div class="block">Get data type.
+ <p>
+ This information is used to select a proper <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> to be used for
+ serializing the <a href="#getData()"><code>event data</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>data type. May return <code>null</code>, if the event does not contain any data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getGenericType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGenericType</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect" class="externalLink">Type</a>&nbsp;getGenericType()</pre>
+<div class="block">Get generic data type.
+ <p>
+ This information is used to select a proper <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> to be used for
+ serializing the <a href="#getData()"><code>event data</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>generic data type. May return <code>null</code>, if the event does not contain any data.</dd>
+</dl>
+</li>
+</ul>
+<a id="getMediaType()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMediaType</h4>
+<pre class="methodSignature"><a href="../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;getMediaType()</pre>
+<div class="block">Get <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.
+ <p>
+ This information is used to a select proper <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> to be used for
+ serializing the <a href="#getData()"><code>event data</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>data <a href="../core/MediaType.html" title="class in javax.ws.rs.core"><code>MediaType</code></a>.</dd>
+</dl>
+</li>
+</ul>
+<a id="getData()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getData</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;getData()</pre>
+<div class="block">Get event data.
+ <p>
+ The event data, if specified, are serialized and sent as one or more SSE event <code>"data"</code> fields
+ (depending on the line breaks in the actual serialized data content). The data are serialized
+ using an available <a href="../ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><code>MessageBodyWriter</code></a> that is selected based on the event
+ <a href="#getType()"><code>type</code></a>, <a href="#getGenericType()"><code>getGenericType()</code></a> generic type} and <a href="#getMediaType()"><code>getMediaType()</code></a> media type}.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event data. May return <code>null</code>, if the event does not contain any data.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/OutboundSseEvent.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/Sse.html b/apidocs/2.1.6/javax/ws/rs/sse/Sse.html
new file mode 100644
index 0000000..274bdbd
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/Sse.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Sse (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Sse (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":18,"i2":18,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Sse.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface Sse" class="title">Interface Sse</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<pre>public interface <span class="typeNameLabel">Sse</span></pre>
+<div class="block">Server-side entry point for creating <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse"><code>SseBroadcaster</code></a>.
+ <p>
+ Instance of this interface can be injected into a field or as a parameter of a method or
+ a constructor. Also, the instance is thread safe, meaning that it can be shared and its
+ method invoked from different threads without causing inconsistent internal state.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newBroadcaster()">newBroadcaster</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new Server-sent event broadcaster.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>default <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEvent(java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>default <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEvent(java.lang.String,java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEventBuilder()">newEventBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new outbound event builder.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="newEventBuilder()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEventBuilder</h4>
+<pre class="methodSignature"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a>&nbsp;newEventBuilder()</pre>
+<div class="block">Get a new outbound event builder.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>SSE outbound event builder.</dd>
+</dl>
+</li>
+</ul>
+<a id="newEvent(java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEvent</h4>
+<pre class="methodSignature">default&nbsp;<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;newEvent&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</pre>
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.
+ <p>
+ The data can be string only and must not be null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>data</code> - event data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created <code>OutboundSseEvent</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="newEvent(java.lang.String,java.lang.String)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>newEvent</h4>
+<pre class="methodSignature">default&nbsp;<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;newEvent&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</pre>
+<div class="block">Create new <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - event name. (see <a href="SseEvent.html#getName()"><code>SseEvent.getName()</code></a>).</dd>
+<dd><code>data</code> - event data.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>created <code>OutboundSseEvent</code>.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when name or data is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="newBroadcaster()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>newBroadcaster</h4>
+<pre class="methodSignature"><a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a>&nbsp;newBroadcaster()</pre>
+<div class="block">Get a new Server-sent event broadcaster.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new Server-sent event broadcaster instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Sse.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/SseBroadcaster.html b/apidocs/2.1.6/javax/ws/rs/sse/SseBroadcaster.html
new file mode 100644
index 0000000..903e4a0
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/SseBroadcaster.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SseBroadcaster (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseBroadcaster (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseBroadcaster.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface SseBroadcaster" class="title">Interface SseBroadcaster</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseBroadcaster</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Server-Sent events broadcasting facility.
+ <p>
+ Server broadcaster can be used to manage multiple <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>server sinks</code></a>. It enables
+ sending events to all registered event outputs and provides facility to effectively handle
+ exceptions and closures of individual registered event outputs.
+ <p>
+ Instance of this interface is thread safe, meaning that it can be shared and its method invoked
+ from different threads without causing inconsistent internal state.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#broadcast(javax.ws.rs.sse.OutboundSseEvent)">broadcast</a></span>&#8203;(<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Publish an SSE event to all registered <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the broadcaster and all registered <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onClose(java.util.function.Consumer)">onClose</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>&gt;&nbsp;onClose)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when the SSE event output has been closed (either by client closing
+ the connection or by calling <a href="SseEventSink.html#close()"><code>SseEventSink.close()</code></a> on the server side.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(java.util.function.BiConsumer)">onError</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when an exception was thrown by a given SSE event output when trying
+ to write to it or close it.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(javax.ws.rs.sse.SseEventSink)">register</a></span>&#8203;(<a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>&nbsp;sseEventSink)</code></th>
+<td class="colLast">
+<div class="block">Register provided <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="onError(java.util.function.BiConsumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onError</h4>
+<pre class="methodSignature">void&nbsp;onError&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</pre>
+<div class="block">Register a listener, which will be called when an exception was thrown by a given SSE event output when trying
+ to write to it or close it.
+ <p>
+ This operation is potentially slow, especially if large number of listeners get registered in the broadcaster.
+ The <code>SseBroadcaster</code> implementation is optimized to efficiently handle small amounts of
+ concurrent listener registrations and removals and large amounts of registered listener notifications.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onError</code> - bi-consumer, taking two parameters: <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a>, which is the source of the
+                error and the actual <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="onClose(java.util.function.Consumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onClose</h4>
+<pre class="methodSignature">void&nbsp;onClose&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>&gt;&nbsp;onClose)</pre>
+<div class="block">Register a listener, which will be called when the SSE event output has been closed (either by client closing
+ the connection or by calling <a href="SseEventSink.html#close()"><code>SseEventSink.close()</code></a> on the server side.
+ <p>
+ This operation is potentially slow, especially if large number of listeners get registered in the broadcaster.
+ The <code>SseBroadcaster</code> implementation is optimized to efficiently handle small amounts of
+ concurrent listener registrations and removals and large amounts of registered listener notifications.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onClose</code> - consumer taking single parameter, a <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a>, which was closed.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(javax.ws.rs.sse.SseEventSink)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>&nbsp;sseEventSink)</pre>
+<div class="block">Register provided <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sseEventSink</code> - to be registered.</dd>
+</dl>
+</li>
+</ul>
+<a id="broadcast(javax.ws.rs.sse.OutboundSseEvent)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>broadcast</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;&nbsp;broadcast&#8203;(<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</pre>
+<div class="block">Publish an SSE event to all registered <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - SSE event to be published.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>completion stage that completes when the event has been broadcast to all registered event sinks.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()</pre>
+<div class="block">Close the broadcaster and all registered <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.
+ <p>
+ Any other resources associated with the <a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse"><code>SseBroadcaster</code></a> should be released.
+ <p>
+ Subsequent calls have no effect and are ignored. Once the <a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse"><code>SseBroadcaster</code></a> is closed,
+ invoking any other method on the broadcaster instance would result in an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a>
+ being thrown.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseBroadcaster.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/SseEvent.html b/apidocs/2.1.6/javax/ws/rs/sse/SseEvent.html
new file mode 100644
index 0000000..bf47594
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/SseEvent.html
@@ -0,0 +1,400 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SseEvent (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEvent (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEvent.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface SseEvent" class="title">Interface SseEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><code><a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></code>, <code><a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseEvent</span></pre>
+<div class="block">Base Server Sent Event definition.
+ <p>
+ This interface provides basic properties of the Server Sent Event, namely ID, Name, and Comment.
+ It also provides access to the Reconnect delay property.
+ <p>
+ <code>SseEvent</code> is extended by another two interfaces, <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and
+ <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a>. The main difference is in how are instances created and how the stored
+ data can be accessed (or provided).</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#RECONNECT_NOT_SET">RECONNECT_NOT_SET</a></span></code></th>
+<td class="colLast">
+<div class="block">A "reconnection not set" value for the SSE reconnect delay set via SSE event <code>retry</code> field.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getComment()">getComment</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a comment string that accompanies the event.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get event identifier.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get event name.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>long</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getReconnectDelay()">getReconnectDelay</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get new connection retry time in milliseconds the event receiver should wait before attempting to
+ reconnect after a connection to the SSE event source is lost.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReconnectDelaySet()">isReconnectDelaySet</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the connection retry time has been set in the event.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="RECONNECT_NOT_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RECONNECT_NOT_SET</h4>
+<pre>static final&nbsp;long RECONNECT_NOT_SET</pre>
+<div class="block">A "reconnection not set" value for the SSE reconnect delay set via SSE event <code>retry</code> field.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.sse.SseEvent.RECONNECT_NOT_SET">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="getId()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getId</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getId()</pre>
+<div class="block">Get event identifier.
+ <p>
+ Contains value of SSE <code>"id"</code> field. This field is optional. Method may return <code>null</code>, if the event
+ identifier is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event id.</dd>
+</dl>
+</li>
+</ul>
+<a id="getName()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
+<div class="block">Get event name.
+ <p>
+ Contains value of SSE <code>"event"</code> field. This field is optional. Method may return <code>null</code>, if the event
+ name is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>event name, or <code>null</code> if not set.</dd>
+</dl>
+</li>
+</ul>
+<a id="getComment()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getComment</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getComment()</pre>
+<div class="block">Get a comment string that accompanies the event.
+ <p>
+ Contains value of the comment associated with SSE event. This field is optional. Method may return <code>null</code>,
+ if the event comment is not specified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>comment associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a id="getReconnectDelay()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReconnectDelay</h4>
+<pre class="methodSignature">long&nbsp;getReconnectDelay()</pre>
+<div class="block">Get new connection retry time in milliseconds the event receiver should wait before attempting to
+ reconnect after a connection to the SSE event source is lost.
+ <p>
+ Contains value of SSE <code>"retry"</code> field. This field is optional. Method returns <a href="#RECONNECT_NOT_SET"><code>RECONNECT_NOT_SET</code></a>
+ if no value has been set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>reconnection delay in milliseconds or <a href="#RECONNECT_NOT_SET"><code>RECONNECT_NOT_SET</code></a> if no value has been set.</dd>
+</dl>
+</li>
+</ul>
+<a id="isReconnectDelaySet()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isReconnectDelaySet</h4>
+<pre class="methodSignature">boolean&nbsp;isReconnectDelaySet()</pre>
+<div class="block">Check if the connection retry time has been set in the event.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if new reconnection delay has been set in the event, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEvent.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/SseEventSink.html b/apidocs/2.1.6/javax/ws/rs/sse/SseEventSink.html
new file mode 100644
index 0000000..fb8f7de
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/SseEventSink.html
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SseEventSink (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEventSink (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSink.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface SseEventSink" class="title">Interface SseEventSink</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseEventSink</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Outbound Server-Sent Events stream.
+ <p>
+ The instance of <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> can be only acquired by injection of a resource method parameter:
+ <pre>
+ &#64;GET
+ &#64;Path("eventStream")
+ &#64;Produces(MediaType.SERVER_SENT_EVENTS)
+ public void eventStream(@Context SseEventSink eventSink) {
+     // ...
+ }
+ </pre>
+ The injected instance is then considered as a return type, so the resource method doesn't return anything,
+ similarly as in server-side async processing.
+ <p>
+ The underlying client connection is kept open and the application code
+ is able to send events. A server-side instance implementing the interface
+ corresponds exactly to a single client HTTP connection.
+ <p>
+ The injected instance is thread safe.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar (marek.potociar at oracle.com)</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close the <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance and release all associated resources.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isClosed()">isClosed</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if the stream has been closed already.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#send(javax.ws.rs.sse.OutboundSseEvent)">send</a></span>&#8203;(<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Send an outbound Server-sent event to this sink.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="isClosed()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isClosed</h4>
+<pre class="methodSignature">boolean&nbsp;isClosed()</pre>
+<div class="block">Check if the stream has been closed already.
+ <p>
+ Please note that the client connection represented by this <code>SseServerSink</code> can be closed by the
+ client side when a client decides to close connection and disconnect from the server.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> when closed, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="send(javax.ws.rs.sse.OutboundSseEvent)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>send</h4>
+<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;&nbsp;send&#8203;(<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</pre>
+<div class="block">Send an outbound Server-sent event to this sink.
+ <p>
+ Event will be serialized and sent to the client.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - event to be written.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>completion stage that completes when the event has been sent. If there is a problem during sending of
+ an event, completion stage will be completed exceptionally.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">void&nbsp;close()</pre>
+<div class="block">Close the <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance and release all associated resources.
+ <p>
+ Subsequent calls have no effect and are ignored. Once the <a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> is closed,
+ invoking any method other than this one and <a href="#isClosed()"><code>isClosed()</code></a> would result in
+ an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a> being thrown.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSink.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/SseEventSource.Builder.html b/apidocs/2.1.6/javax/ws/rs/sse/SseEventSource.Builder.html
new file mode 100644
index 0000000..13a9389
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/SseEventSource.Builder.html
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SseEventSource.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEventSource.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Class SseEventSource.Builder" class="title">Class SseEventSource.Builder</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" class="externalLink">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.ws.rs.sse.SseEventSource.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></dd>
+</dl>
+<hr>
+<pre>public abstract static class <span class="typeNameLabel">SseEventSource.Builder</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
+<div class="block"><a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> builder class.
+ <p>
+ Event source builder provides methods that let you conveniently configure and subsequently build
+ a new <code>SseEventSource</code> instance. You can obtain a new event source builder instance using
+ a static <a href="SseEventSource.html#target(javax.ws.rs.client.WebTarget)"><code>SseEventSource.target(endpoint)</code></a> factory method.
+ <p>
+ For example:
+ <pre>
+ SseEventSource es = SseEventSource.target(endpoint)
+                             .reconnectingEvery(5, SECONDS)
+                             .build();
+ es.register(System.out::println);
+ es.open();
+ </pre></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Field</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</a></span></code></th>
+<td class="colLast">
+<div class="block">Name of the property identifying the <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>SseEventSource.Builder</code></a> implementation
+ to be returned from <code>newBuilder()</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier</th>
+<th class="colSecond" scope="col">Constructor</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected </code></td>
+<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">Builder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Allows custom implementations to extend the SSE event source builder class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>abstract <a href="SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>abstract <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reconnectingEvery(long,java.util.concurrent.TimeUnit)">reconnectingEvery</a></span>&#8203;(long&nbsp;delay,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the initial reconnect delay to be used by the event source.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>protected abstract <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(javax.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<ul class="blockList">
+<li class="blockList"><a id="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" class="externalLink">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" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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" class="externalLink">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" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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" class="externalLink">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" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</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" class="externalLink">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" class="externalLink">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" class="externalLink">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a id="JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a> JAXRS_DEFAULT_SSE_BUILDER_PROPERTY</pre>
+<div class="block">Name of the property identifying the <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>SseEventSource.Builder</code></a> implementation
+ to be returned from <code>newBuilder()</code>.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#javax.ws.rs.sse.SseEventSource.Builder.JAXRS_DEFAULT_SSE_BUILDER_PROPERTY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a id="&lt;init&gt;()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Builder</h4>
+<pre>protected&nbsp;Builder()</pre>
+<div class="block">Allows custom implementations to extend the SSE event source builder class.</div>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="target(javax.ws.rs.client.WebTarget)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature">protected abstract&nbsp;<a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a>&nbsp;target&#8203;(<a href="../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</pre>
+</li>
+</ul>
+<a id="reconnectingEvery(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>reconnectingEvery</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a>&nbsp;reconnectingEvery&#8203;(long&nbsp;delay,
+                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Set the initial reconnect delay to be used by the event source.
+ <p>
+ Note that this value may be later overridden by the SSE endpoint using either a <code>retry</code> SSE event field
+ or <code>HTTP 503 + <a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> mechanism as described
+ in the <a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> javadoc.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>delay</code> - the default time to wait before attempting to recover from a connection loss.</dd>
+<dd><code>unit</code> - time unit of the reconnect delay parameter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>updated event source builder instance.</dd>
+</dl>
+</li>
+</ul>
+<a id="build()">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre class="methodSignature">public abstract&nbsp;<a href="SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a>&nbsp;build()</pre>
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a>.
+ <p>
+ The returned event source is ready, but not <a href="SseEventSource.html#open()"><code>connected</code></a> to the SSE endpoint.
+ It is expected that you will manually invoke its <a href="SseEventSource.html#open()"><code>SseEventSource.open()</code></a> method once you are ready to start
+ receiving SSE events. In case you want to build an event source instance that is already connected
+ to the SSE endpoint, use the event source builder <a href="SseEventSource.html#open()"><code>SseEventSource.open()</code></a> method instead.
+ <p>
+ Once the event source is open, the incoming events are processed by the event source in an
+ asynchronous task that runs in an internal single-threaded <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink"><code>scheduled executor service</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>new event source instance, ready to be connected to the SSE endpoint.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="SseEventSource.html#open()"><code>SseEventSource.open()</code></a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.Builder.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&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><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/SseEventSource.html b/apidocs/2.1.6/javax/ws/rs/sse/SseEventSource.html
new file mode 100644
index 0000000..257f4ca
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/SseEventSource.html
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>SseEventSource (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SseEventSource (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var data = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":1};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<ul class="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<!-- ======== START OF CLASS DATA ======== -->
+<main role="main">
+<div class="header">
+<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">javax.ws.rs.sse</a></div>
+<h2 title="Interface SseEventSource" class="title">Interface SseEventSource</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+<hr>
+<pre>public interface <span class="typeNameLabel">SseEventSource</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></pre>
+<div class="block">Client for reading and processing <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.
+ <p>
+ SSE event source instances of this class are thread safe. To build a new instance, you can use the
+ <a href="#target(javax.ws.rs.client.WebTarget)"><code>SseEventSource.target(endpoint)</code></a> factory method to get
+ a new event source builder that can be further customised and eventually used to create a new SSE
+ event source.
+ <p>
+ Once a <a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> is created, it can be used to <a href="#open()"><code>open a connection</code></a>
+ to the associated <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a>. After establishing the connection, the event source starts
+ processing any incoming inbound events. Whenever a new event is received, an
+ <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true#accept(T)" title="class or interface in java.util.function" class="externalLink"><code>Consumer<InboundSseEvent>#accept(InboundSseEvent)</code></a> method is invoked on any registered event consumers.
+ <h3>Reconnect support</h3>
+ <p>
+ The <code>SseEventSource</code> supports automated recuperation from a connection loss, including
+ negotiation of delivery of any missed events based on the last received  SSE event <code>id</code> field value, provided
+ this field is set by the server and the negotiation facility is supported by the server. In case of a connection loss,
+ the last received SSE event <code>id</code> field value is send in the
+ <code><a href="../core/HttpHeaders.html#LAST_EVENT_ID_HEADER">"Last-Event-ID"</a></code> HTTP
+ request header as part of a new connection request sent to the SSE endpoint. Upon a receipt of such reconnect request, the SSE
+ endpoint that supports this negotiation facility is expected to replay all missed events. Note however, that this is a
+ best-effort mechanism which does not provide any guaranty that all events would be delivered without a loss. You should
+ therefore not rely on receiving every single event and design your client application code accordingly.
+ <p>
+ By default, when a connection the the SSE endpoint is lost, the event source will wait 500&nbsp;ms
+ before attempting to reconnect to the SSE endpoint. The SSE endpoint can however control the client-side retry delay
+ by including a special <code>retry</code> field value in the any send event. <code>SseEventSource</code> tracks any
+ received SSE event <code>retry</code> field values set by the endpoint and adjusts the reconnect delay accordingly,
+ using the last received <code>retry</code> field value as the reconnect delay.
+ <p>
+ In addition to handling the standard connection loss failures, <code>SseEventSource</code> automatically deals with any
+ <code>HTTP 503 Service Unavailable</code> responses from an SSE endpoint, that contain a
+ <code><a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> HTTP header with a valid value. The
+ <code>HTTP 503 + <a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> technique is often used by HTTP endpoints
+ as a means of connection and traffic throttling.
+ In case a <code>HTTP 503 + <a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> response is received in return to a connection
+ request, SSE event source will automatically schedule a new reconnect attempt and use the received
+ <code><a href="../core/HttpHeaders.html#RETRY_AFTER">"Retry-After"</a></code> HTTP header value as a one-time override of the reconnect delay.</div>
+<dl>
+<dt><span class="simpleTagLabel">Since:</span></dt>
+<dd>2.1</dd>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Marek Potociar</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<div class="memberSummary">
+<table>
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></span></code></th>
+<td class="colLast">
+<div class="block"><a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</section>
+<!-- ========== METHOD SUMMARY =========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<div class="memberSummary">
+<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default Methods</button></div>
+<div id="memberSummary_tabpanel" role="tabpanel">
+<table aria-labelledby="t0">
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor" id="i0">
+<td class="colFirst"><code>default void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Close this event source.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i1">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close(long,java.util.concurrent.TimeUnit)">close</a></span>&#8203;(long&nbsp;timeout,
+     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Close this event source and wait for the internal event processing task to complete
+ for up to the specified amount of wait time.</div>
+</td>
+</tr>
+<tr class="altColor" id="i2">
+<td class="colFirst"><code>boolean</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOpen()">isOpen</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Check if this event source instance has already been <a href="#open()"><code>opened</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i3">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open()">open</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Open the connection to the supplied SSE underlying <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a> and start processing incoming
+ <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>events</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor" id="i4">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent)</code></th>
+<td class="colLast">
+<div class="block">Register a <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i5">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.util.function.Consumer,java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.</div>
+</td>
+</tr>
+<tr class="altColor" id="i6">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;onComplete)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.</div>
+</td>
+</tr>
+<tr class="rowColor" id="i7">
+<td class="colFirst"><code>static <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#target(javax.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to
+ configure and fine-tune various aspects of a newly prepared event source instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<section role="region">
+<ul class="blockList">
+<li class="blockList"><a id="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a id="register(java.util.function.Consumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent)</pre>
+<div class="block">Register a <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.
+ <p>
+ Given consumer is invoked once per each received event.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onEvent</code> - event consumer.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the provided parameter is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.util.function.Consumer,java.util.function.Consumer)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</pre>
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.
+ <p>
+ Event consumer is invoked once per each received event, <code>Throwable</code> consumer is invoked invoked upon a
+ unrecoverable error encountered by a <a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onEvent</code> - event consumer.</dd>
+<dd><code>onError</code> - error consumer.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the any of the provided parameters is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>register</h4>
+<pre class="methodSignature">void&nbsp;register&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;onComplete)</pre>
+<div class="block">Register <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.
+ <p>
+ Event consumer is invoked once per each received event, <code>Throwable</code> consumer is invoked invoked upon a
+ unrecoverable error encountered by a <a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a>, onComplete callback is invoked when there are no
+ further events to be received.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>onEvent</code> - event consumer.</dd>
+<dd><code>onError</code> - error consumer.</dd>
+<dd><code>onComplete</code> - onComplete handler.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - when the any of the provided parameters is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="target(javax.ws.rs.client.WebTarget)">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>target</h4>
+<pre class="methodSignature">static&nbsp;<a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a>&nbsp;target&#8203;(<a href="../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</pre>
+<div class="block">Create a new <a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to
+ configure and fine-tune various aspects of a newly prepared event source instance.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>endpoint</code> - SSE streaming endpoint. Must not be <code>null</code>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a builder of a new event source instance pointing at the specified SSE streaming endpoint.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - in case the supplied web target is <code>null</code>.</dd>
+</dl>
+</li>
+</ul>
+<a id="open()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>open</h4>
+<pre class="methodSignature">void&nbsp;open()</pre>
+<div class="block">Open the connection to the supplied SSE underlying <a href="../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a> and start processing incoming
+ <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>events</code></a>.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - in case the event source has already been opened earlier.</dd>
+</dl>
+</li>
+</ul>
+<a id="isOpen()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre class="methodSignature">boolean&nbsp;isOpen()</pre>
+<div class="block">Check if this event source instance has already been <a href="#open()"><code>opened</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this event source is open, <code>false</code> otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a id="close()">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">default&nbsp;void&nbsp;close()</pre>
+<div class="block">Close this event source.
+ <p>
+ The method will wait up to 5 seconds for the internal event processing tasks to complete.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close()" title="class or interface in java.lang" class="externalLink">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a></code></dd>
+</dl>
+</li>
+</ul>
+<a id="close(long,java.util.concurrent.TimeUnit)">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>close</h4>
+<pre class="methodSignature">boolean&nbsp;close&#8203;(long&nbsp;timeout,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</pre>
+<div class="block">Close this event source and wait for the internal event processing task to complete
+ for up to the specified amount of wait time.
+ <p>
+ The method blocks until the event processing task has completed execution after a shutdown
+ request, or until the timeout occurs, or the current thread is interrupted, whichever happens
+ first.
+ <p>
+ In case the waiting for the event processing task has been interrupted, this method restores
+ the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#interrupted()" title="class or interface in java.lang" class="externalLink"><code>interrupt</code></a> flag on the thread before returning <code>false</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeout</code> - the maximum time to wait.</dd>
+<dd><code>unit</code> - the time unit of the timeout argument.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><code>true</code> if this executor terminated and <code>false</code> if the timeout elapsed
+ before termination or the termination was interrupted.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</div>
+</main>
+<!-- ========= END OF CLASS DATA ========= -->
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SseEventSource.html">Use</a></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">
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&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>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+</div>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/InboundSseEvent.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/InboundSseEvent.html
new file mode 100644
index 0000000..3c23356
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/InboundSseEvent.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.InboundSseEvent (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.InboundSseEvent (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.InboundSseEvent" class="title">Uses of Interface<br>javax.ws.rs.sse.InboundSseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Method parameters in <a href="../package-summary.html">javax.ws.rs.sse</a> with type arguments of type <a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#register(java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent)</code></th>
+<td class="colLast">
+<div class="block">Register a <a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> consumer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)">register</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a>&gt;&nbsp;onEvent,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Runnable</a>&nbsp;onComplete)</code></th>
+<td class="colLast">
+<div class="block">Register <a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>InboundSseEvent</code></a> and <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Throwable</code></a> consumers and onComplete callback.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/OutboundSseEvent.Builder.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/OutboundSseEvent.Builder.html
new file mode 100644
index 0000000..a40e13a
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/OutboundSseEvent.Builder.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.OutboundSseEvent.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.OutboundSseEvent.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.OutboundSseEvent.Builder" class="title">Uses of Interface<br>javax.ws.rs.sse.OutboundSseEvent.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> that return <a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#comment(java.lang.String)">comment</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;comment)</code></th>
+<td class="colLast">
+<div class="block">Set comment string associated with the event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#data(java.lang.Class,java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#data(java.lang.Object)">data</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and java type of event data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#data(javax.ws.rs.core.GenericType,java.lang.Object)">data</a></span>&#8203;(<a href="../../core/GenericType.html" title="class in javax.ws.rs.core">GenericType</a>&nbsp;type,
+    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Set event data and a generic java type of event data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#id(java.lang.String)">id</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;id)</code></th>
+<td class="colLast">
+<div class="block">Set the event id.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#mediaType(javax.ws.rs.core.MediaType)">mediaType</a></span>&#8203;(<a href="../../core/MediaType.html" title="class in javax.ws.rs.core">MediaType</a>&nbsp;mediaType)</code></th>
+<td class="colLast">
+<div class="block">Set the <a href="../../core/MediaType.html" title="class in javax.ws.rs.core"><code>media type</code></a> of the event data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#name(java.lang.String)">name</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
+<td class="colLast">
+<div class="block">Set event name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newEventBuilder()">newEventBuilder</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new outbound event builder.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#reconnectDelay(long)">reconnectDelay</a></span>&#8203;(long&nbsp;milliseconds)</code></th>
+<td class="colLast">
+<div class="block">Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait
+ before attempting to reconnect in case a connection to SSE event source is lost.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/OutboundSseEvent.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/OutboundSseEvent.html
new file mode 100644
index 0000000..0f59be4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/OutboundSseEvent.html
@@ -0,0 +1,207 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.OutboundSseEvent (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.OutboundSseEvent (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.OutboundSseEvent" class="title">Uses of Interface<br>javax.ws.rs.sse.OutboundSseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> that return <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">OutboundSseEvent.Builder.</span><code><span class="memberNameLink"><a href="../OutboundSseEvent.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newEvent(java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newEvent(java.lang.String,java.lang.String)">newEvent</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;data)</code></th>
+<td class="colLast">
+<div class="block">Create new <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> from provided data and name.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> with parameters of type <a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#broadcast(javax.ws.rs.sse.OutboundSseEvent)">broadcast</a></span>&#8203;(<a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Publish an SSE event to all registered <a href="../SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletionStage.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">CompletionStage</a>&lt;?&gt;</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSink.</span><code><span class="memberNameLink"><a href="../SseEventSink.html#send(javax.ws.rs.sse.OutboundSseEvent)">send</a></span>&#8203;(<a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a>&nbsp;event)</code></th>
+<td class="colLast">
+<div class="block">Send an outbound Server-sent event to this sink.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/Sse.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/Sse.html
new file mode 100644
index 0000000..29f70a4
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/Sse.html
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.Sse (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.Sse (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Sse.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.Sse" class="title">Uses of Interface<br>javax.ws.rs.sse.Sse</h2>
+</div>
+<div class="classUseContainer">No usage of javax.ws.rs.sse.Sse</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../Sse.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseBroadcaster.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseBroadcaster.html
new file mode 100644
index 0000000..b5ba653
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseBroadcaster.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.SseBroadcaster (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.SseBroadcaster (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseBroadcaster.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.SseBroadcaster" class="title">Uses of Interface<br>javax.ws.rs.sse.SseBroadcaster</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> that return <a href="../SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">Sse.</span><code><span class="memberNameLink"><a href="../Sse.html#newBroadcaster()">newBroadcaster</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Get a new Server-sent event broadcaster.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseBroadcaster.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEvent.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEvent.html
new file mode 100644
index 0000000..2e9cb54
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEvent.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.SseEvent (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.SseEvent (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEvent.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.SseEvent" class="title">Uses of Interface<br>javax.ws.rs.sse.SseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Subinterfaces of <a href="../SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></span></code></th>
+<td class="colLast">
+<div class="block">Inbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></span></code></th>
+<td class="colLast">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEvent.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSink.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSink.html
new file mode 100644
index 0000000..f6e996f
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSink.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.SseEventSink (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.SseEventSink (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.SseEventSink" class="title">Uses of Interface<br>javax.ws.rs.sse.SseEventSink</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> with parameters of type <a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#register(javax.ws.rs.sse.SseEventSink)">register</a></span>&#8203;(<a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>&nbsp;sseEventSink)</code></th>
+<td class="colLast">
+<div class="block">Register provided <a href="../SseEventSink.html" title="interface in javax.ws.rs.sse"><code>SseEventSink</code></a> instance to this <code>SseBroadcaster</code>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="useSummary">
+<table>
+<caption><span>Method parameters in <a href="../package-summary.html">javax.ws.rs.sse</a> with type arguments of type <a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#onClose(java.util.function.Consumer)">onClose</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">Consumer</a>&lt;<a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>&gt;&nbsp;onClose)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when the SSE event output has been closed (either by client closing
+ the connection or by calling <a href="../SseEventSink.html#close()"><code>close()</code></a> on the server side.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseBroadcaster.</span><code><span class="memberNameLink"><a href="../SseBroadcaster.html#onError(java.util.function.BiConsumer)">onError</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function" class="externalLink">BiConsumer</a>&lt;<a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&gt;&nbsp;onError)</code></th>
+<td class="colLast">
+<div class="block">Register a listener, which will be called when an exception was thrown by a given SSE event output when trying
+ to write to it or close it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSink.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSource.Builder.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSource.Builder.html
new file mode 100644
index 0000000..a590556
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSource.Builder.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Class javax.ws.rs.sse.SseEventSource.Builder (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class javax.ws.rs.sse.SseEventSource.Builder (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Class javax.ws.rs.sse.SseEventSource.Builder" class="title">Uses of Class<br>javax.ws.rs.sse.SseEventSource.Builder</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> that return <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../SseEventSource.Builder.html#reconnectingEvery(long,java.util.concurrent.TimeUnit)">reconnectingEvery</a></span>&#8203;(long&nbsp;delay,
+                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent" class="externalLink">TimeUnit</a>&nbsp;unit)</code></th>
+<td class="colLast">
+<div class="block">Set the initial reconnect delay to be used by the event source.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected abstract <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../SseEventSource.Builder.html#target(javax.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.</span><code><span class="memberNameLink"><a href="../SseEventSource.html#target(javax.ws.rs.client.WebTarget)">target</a></span>&#8203;(<a href="../../client/WebTarget.html" title="interface in javax.ws.rs.client">WebTarget</a>&nbsp;endpoint)</code></th>
+<td class="colLast">
+<div class="block">Create a new <a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><code>event source builder</code></a> that provides convenient way how to
+ configure and fine-tune various aspects of a newly prepared event source instance.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.Builder.html" title="class in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSource.html b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSource.html
new file mode 100644
index 0000000..d32f24d
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/class-use/SseEventSource.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Interface javax.ws.rs.sse.SseEventSource (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface javax.ws.rs.sse.SseEventSource (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h2 title="Uses of Interface javax.ws.rs.sse.SseEventSource" class="title">Uses of Interface<br>javax.ws.rs.sse.SseEventSource</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="../SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList">
+<section role="region"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<h3>Uses of <a href="../SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a> in <a href="../package-summary.html">javax.ws.rs.sse</a></h3>
+<div class="useSummary">
+<table>
+<caption><span>Methods in <a href="../package-summary.html">javax.ws.rs.sse</a> that return <a href="../SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colSecond" scope="col">Method</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>abstract <a href="../SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></code></td>
+<th class="colSecond" scope="row"><span class="typeNameLabel">SseEventSource.Builder.</span><code><span class="memberNameLink"><a href="../SseEventSource.Builder.html#build()">build</a></span>()</code></th>
+<td class="colLast">
+<div class="block">Build new SSE event source pointing at a SSE streaming <a href="../../client/WebTarget.html" title="interface in javax.ws.rs.client"><code>web target</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</section>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../index.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../SseEventSource.html" title="interface in javax.ws.rs.sse">Class</a></li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/package-summary.html b/apidocs/2.1.6/javax/ws/rs/sse/package-summary.html
new file mode 100644
index 0000000..9b29590
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/package-summary.html
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.sse (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.sse (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;javax.ws.rs.sse</h1>
+</div>
+<div class="contentContainer">
+<section role="region"><a id="package.description">
+<!--   -->
+</a>
+<div class="block">Server-Sent Events related API.
+
+ This package provides support for providing event streams from the server
+ and also for processing then on the client side.</div>
+</section>
+<ul class="blockList">
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse">InboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Inbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse">OutboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse">OutboundSseEvent.Builder</a></th>
+<td class="colLast">
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="Sse.html" title="interface in javax.ws.rs.sse">Sse</a></th>
+<td class="colLast">
+<div class="block">Server-side entry point for creating <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> and <a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse"><code>SseBroadcaster</code></a>.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse">SseBroadcaster</a></th>
+<td class="colLast">
+<div class="block">Server-Sent events broadcasting facility.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SseEvent.html" title="interface in javax.ws.rs.sse">SseEvent</a></th>
+<td class="colLast">
+<div class="block">Base Server Sent Event definition.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SseEventSink.html" title="interface in javax.ws.rs.sse">SseEventSink</a></th>
+<td class="colLast">
+<div class="block">Outbound Server-Sent Events stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="SseEventSource.html" title="interface in javax.ws.rs.sse">SseEventSource</a></th>
+<td class="colLast">
+<div class="block">Client for reading and processing <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList">
+<div class="typeSummary">
+<table>
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse">SseEventSource.Builder</a></th>
+<td class="colLast">
+<div class="block"><a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/package-tree.html b/apidocs/2.1.6/javax/ws/rs/sse/package-tree.html
new file mode 100644
index 0000000..d5b12b6
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/package-tree.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>javax.ws.rs.sse Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="javax.ws.rs.sse Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For Package javax.ws.rs.sse</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">javax.ws.rs.sse.<a href="SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><span class="typeNameLink">SseEventSource.Builder</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">AutoCloseable</span></a>
+<ul>
+<li class="circle">javax.ws.rs.sse.<a href="SseBroadcaster.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseBroadcaster</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="SseEventSink.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEventSink</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEventSource</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.sse.<a href="OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent.Builder</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="Sse.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">Sse</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="SseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEvent</span></a>
+<ul>
+<li class="circle">javax.ws.rs.sse.<a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">InboundSseEvent</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent</span></a></li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/javax/ws/rs/sse/package-use.html b/apidocs/2.1.6/javax/ws/rs/sse/package-use.html
new file mode 100644
index 0000000..302909b
--- /dev/null
+++ b/apidocs/2.1.6/javax/ws/rs/sse/package-use.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Uses of Package javax.ws.rs.sse (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package javax.ws.rs.sse (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "../../../../";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Uses of Package javax.ws.rs.sse" class="title">Uses of Package<br>javax.ws.rs.sse</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<div class="useSummary">
+<table>
+<caption><span>Packages that use <a href="package-summary.html">javax.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="#javax.ws.rs.sse">javax.ws.rs.sse</a></th>
+<td class="colLast">
+<div class="block">Server-Sent Events related API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+<li class="blockList"><a id="javax.ws.rs.sse">
+<!--   -->
+</a>
+<div class="useSummary">
+<table>
+<caption><span>Classes in <a href="package-summary.html">javax.ws.rs.sse</a> used by <a href="package-summary.html">javax.ws.rs.sse</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/InboundSseEvent.html#javax.ws.rs.sse">InboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Inbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/OutboundSseEvent.html#javax.ws.rs.sse">OutboundSseEvent</a></th>
+<td class="colLast">
+<div class="block">Representation of a single outbound Server-sent event.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/OutboundSseEvent.Builder.html#javax.ws.rs.sse">OutboundSseEvent.Builder</a></th>
+<td class="colLast">
+<div class="block">A builder class used for creating <a href="OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>OutboundSseEvent</code></a> instances.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SseBroadcaster.html#javax.ws.rs.sse">SseBroadcaster</a></th>
+<td class="colLast">
+<div class="block">Server-Sent events broadcasting facility.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEvent.html#javax.ws.rs.sse">SseEvent</a></th>
+<td class="colLast">
+<div class="block">Base Server Sent Event definition.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEventSink.html#javax.ws.rs.sse">SseEventSink</a></th>
+<td class="colLast">
+<div class="block">Outbound Server-Sent Events stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEventSource.html#javax.ws.rs.sse">SseEventSource</a></th>
+<td class="colLast">
+<div class="block">Client for reading and processing <a href="InboundSseEvent.html" title="interface in javax.ws.rs.sse"><code>incoming Server-Sent Events</code></a>.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<th class="colFirst" scope="row"><a href="class-use/SseEventSource.Builder.html#javax.ws.rs.sse">SseEventSource.Builder</a></th>
+<td class="colLast">
+<div class="block"><a href="SseEventSource.html" title="interface in javax.ws.rs.sse"><code>SseEventSource</code></a> builder class.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../index.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/jquery/external/jquery/jquery.js b/apidocs/2.1.6/jquery/external/jquery/jquery.js
new file mode 100644
index 0000000..9b5206b
--- /dev/null
+++ b/apidocs/2.1.6/jquery/external/jquery/jquery.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/2.1.6/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png b/apidocs/2.1.6/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 0000000..34abd18
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-bg_glass_65_dadada_1x400.png b/apidocs/2.1.6/jquery/images/ui-bg_glass_65_dadada_1x400.png
new file mode 100644
index 0000000..f058a93
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-bg_glass_65_dadada_1x400.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-bg_glass_75_dadada_1x400.png b/apidocs/2.1.6/jquery/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 0000000..2ce04c1
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-bg_glass_75_dadada_1x400.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png b/apidocs/2.1.6/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 0000000..a90afb8
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-bg_glass_95_fef1ec_1x400.png b/apidocs/2.1.6/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000..dbe091f
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-bg_glass_95_fef1ec_1x400.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/apidocs/2.1.6/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 0000000..5dc3593
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-icons_222222_256x240.png b/apidocs/2.1.6/jquery/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000..e723e17
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-icons_222222_256x240.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-icons_2e83ff_256x240.png b/apidocs/2.1.6/jquery/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..1f5f497
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-icons_2e83ff_256x240.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-icons_454545_256x240.png b/apidocs/2.1.6/jquery/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000..618f5b0
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-icons_454545_256x240.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-icons_888888_256x240.png b/apidocs/2.1.6/jquery/images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000..ee5e33f
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-icons_888888_256x240.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/images/ui-icons_cd0a0a_256x240.png b/apidocs/2.1.6/jquery/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000..7e8ebc1
--- /dev/null
+++ b/apidocs/2.1.6/jquery/images/ui-icons_cd0a0a_256x240.png
Binary files differ
diff --git a/apidocs/2.1.6/jquery/jquery-3.3.1.js b/apidocs/2.1.6/jquery/jquery-3.3.1.js
new file mode 100644
index 0000000..9b5206b
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-3.3.1.js
@@ -0,0 +1,10364 @@
+/*!
+ * jQuery JavaScript Library v3.3.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2018-01-20T17:24Z
+ */
+( function( global, factory ) {
+
+	"use strict";
+
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+		// For CommonJS and CommonJS-like environments where a proper `window`
+		// is present, execute the factory and get jQuery.
+		// For environments that do not have a `window` with a `document`
+		// (such as Node.js), expose a factory as module.exports.
+		// This accentuates the need for the creation of a real `window`.
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info.
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+var isFunction = function isFunction( obj ) {
+
+      // Support: Chrome <=57, Firefox <=52
+      // In some browsers, typeof returns "function" for HTML <object> elements
+      // (i.e., `typeof document.createElement( "object" ) === "function"`).
+      // We don't want to classify *any* DOM node as a function.
+      return typeof obj === "function" && typeof obj.nodeType !== "number";
+  };
+
+
+var isWindow = function isWindow( obj ) {
+		return obj != null && obj === obj.window;
+	};
+
+
+
+
+	var preservedScriptAttributes = {
+		type: true,
+		src: true,
+		noModule: true
+	};
+
+	function DOMEval( code, doc, node ) {
+		doc = doc || document;
+
+		var i,
+			script = doc.createElement( "script" );
+
+		script.text = code;
+		if ( node ) {
+			for ( i in preservedScriptAttributes ) {
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
+				}
+			}
+		}
+		doc.head.appendChild( script ).parentNode.removeChild( script );
+	}
+
+
+function toType( obj ) {
+	if ( obj == null ) {
+		return obj + "";
+	}
+
+	// Support: Android <=2.3 only (functionish RegExp)
+	return typeof obj === "object" || typeof obj === "function" ?
+		class2type[ toString.call( obj ) ] || "object" :
+		typeof obj;
+}
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+	version = "3.3.1",
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
+
+	// Support: Android <=4.0 only
+	// Make sure we trim BOM and NBSP
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+
+jQuery.fn = jQuery.prototype = {
+
+	// The current version of jQuery being used
+	jquery: version,
+
+	constructor: jQuery,
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+
+		// Return all the elements in a clean array
+		if ( num == null ) {
+			return slice.call( this );
+		}
+
+		// Return just the one element from the set
+		return num < 0 ? this[ num + this.length ] : this[ num ];
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	each: function( callback ) {
+		return jQuery.each( this, callback );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map( this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		} ) );
+	},
+
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor();
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: push,
+	sort: arr.sort,
+	splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var options, name, src, copy, copyIsArray, clone,
+		target = arguments[ 0 ] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+
+		// Skip the boolean and the target
+		target = arguments[ i ] || {};
+		i++;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !isFunction( target ) ) {
+		target = {};
+	}
+
+	// Extend jQuery itself if only one argument is passed
+	if ( i === length ) {
+		target = this;
+		i--;
+	}
+
+	for ( ; i < length; i++ ) {
+
+		// Only deal with non-null/undefined values
+		if ( ( options = arguments[ i ] ) != null ) {
+
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+					( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend( {
+
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+	// Assume jQuery is ready without the ready module
+	isReady: true,
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	noop: function() {},
+
+	isPlainObject: function( obj ) {
+		var proto, Ctor;
+
+		// Detect obvious negatives
+		// Use toString instead of jQuery.type to catch host objects
+		if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+			return false;
+		}
+
+		proto = getProto( obj );
+
+		// Objects with no prototype (e.g., `Object.create( null )`) are plain
+		if ( !proto ) {
+			return true;
+		}
+
+		// Objects with prototype are plain iff they were constructed by a global Object function
+		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+	},
+
+	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
+		var name;
+
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
+	},
+
+	each: function( obj, callback ) {
+		var length, i = 0;
+
+		if ( isArrayLike( obj ) ) {
+			length = obj.length;
+			for ( ; i < length; i++ ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		} else {
+			for ( i in obj ) {
+				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+					break;
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Support: Android <=4.0 only
+	trim: function( text ) {
+		return text == null ?
+			"" :
+			( text + "" ).replace( rtrim, "" );
+	},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArrayLike( Object( arr ) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		return arr == null ? -1 : indexOf.call( arr, elem, i );
+	},
+
+	// Support: Android <=4.0 only, PhantomJS 1 only
+	// push.apply(_, arraylike) throws on ancient WebKit
+	merge: function( first, second ) {
+		var len = +second.length,
+			j = 0,
+			i = first.length;
+
+		for ( ; j < len; j++ ) {
+			first[ i++ ] = second[ j ];
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
+			}
+		}
+
+		return matches;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var length, value,
+			i = 0,
+			ret = [];
+
+		// Go through the array, translating each of the items to their new values
+		if ( isArrayLike( elems ) ) {
+			length = elems.length;
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret.push( value );
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+	// Support: real iOS 8.2 only (not reproducible in simulator)
+	// `in` check used to prevent JIT error (gh-2145)
+	// hasOwn isn't used here due to false negatives
+	// regarding Nodelist length in IE
+	var length = !!obj && "length" in obj && obj.length,
+		type = toType( obj );
+
+	if ( isFunction( obj ) || isWindow( obj ) ) {
+		return false;
+	}
+
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	tokenize,
+	compile,
+	select,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + 1 * new Date(),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
+	},
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf as it's faster than native
+	// https://jsperf.com/thor-indexof-vs-for/5
+	indexOf = function( list, elem ) {
+		var i = 0,
+			len = list.length;
+		for ( ; i < len; i++ ) {
+			if ( list[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+
+	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+		// Operator (capture 2)
+		"*([*^$|!~]?=)" + whitespace +
+		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+		"*\\]",
+
+	pseudos = ":(" + identifier + ")(?:\\((" +
+		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+		// 1. quoted (capture 3; capture 4 or capture 5)
+		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+		// 2. simple (capture 6)
+		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+		// 3. anything else (capture 2)
+		".*" +
+		")\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rwhitespace = new RegExp( whitespace + "+", "g" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + identifier + ")" ),
+		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+
+	// CSS escapes
+	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox<24
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	},
+
+	// CSS string/identifier serialization
+	// https://drafts.csswg.org/cssom/#common-serializing-idioms
+	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+	fcssescape = function( ch, asCodePoint ) {
+		if ( asCodePoint ) {
+
+			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+			if ( ch === "\0" ) {
+				return "\uFFFD";
+			}
+
+			// Control characters and (dependent upon position) numbers get escaped as code points
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+		}
+
+		// Other potentially-special ASCII characters get backslash-escaped
+		return "\\" + ch;
+	},
+
+	// Used for iframes
+	// See setDocument()
+	// Removing the function wrapper causes a "Permission Denied"
+	// error in IE
+	unloadHandler = function() {
+		setDocument();
+	},
+
+	disabledAncestor = addCombinator(
+		function( elem ) {
+			return elem.disabled === true && ("form" in elem || "label" in elem);
+		},
+		{ dir: "parentNode", next: "legend" }
+	);
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var m, i, elem, nid, match, groups, newSelector,
+		newContext = context && context.ownerDocument,
+
+		// nodeType defaults to 9, since context defaults to document
+		nodeType = context ? context.nodeType : 9;
+
+	results = results || [];
+
+	// Return early from calls with invalid selector or context
+	if ( typeof selector !== "string" || !selector ||
+		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+		return results;
+	}
+
+	// Try to shortcut find operations (as opposed to filters) in HTML documents
+	if ( !seed ) {
+
+		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+			setDocument( context );
+		}
+		context = context || document;
+
+		if ( documentIsHTML ) {
+
+			// If the selector is sufficiently simple, try using a "get*By*" DOM method
+			// (excepting DocumentFragment context, where the methods don't exist)
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+				// ID selector
+				if ( (m = match[1]) ) {
+
+					// Document context
+					if ( nodeType === 9 ) {
+						if ( (elem = context.getElementById( m )) ) {
+
+							// Support: IE, Opera, Webkit
+							// TODO: identify versions
+							// getElementById can match elements by name instead of ID
+							if ( elem.id === m ) {
+								results.push( elem );
+								return results;
+							}
+						} else {
+							return results;
+						}
+
+					// Element context
+					} else {
+
+						// Support: IE, Opera, Webkit
+						// TODO: identify versions
+						// getElementById can match elements by name instead of ID
+						if ( newContext && (elem = newContext.getElementById( m )) &&
+							contains( context, elem ) &&
+							elem.id === m ) {
+
+							results.push( elem );
+							return results;
+						}
+					}
+
+				// Type selector
+				} else if ( match[2] ) {
+					push.apply( results, context.getElementsByTagName( selector ) );
+					return results;
+
+				// Class selector
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
+					context.getElementsByClassName ) {
+
+					push.apply( results, context.getElementsByClassName( m ) );
+					return results;
+				}
+			}
+
+			// Take advantage of querySelectorAll
+			if ( support.qsa &&
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
+
+				// qSA looks outside Element context, which is not what we want
+				// Thanks to Andrew Dupont for this workaround technique
+				// Support: IE <=8
+				// Exclude object elements
+				} else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+					// Capture the context ID, setting it first if necessary
+					if ( (nid = context.getAttribute( "id" )) ) {
+						nid = nid.replace( rcssescape, fcssescape );
+					} else {
+						context.setAttribute( "id", (nid = expando) );
+					}
+
+					// Prefix every selector in the list
+					groups = tokenize( selector );
+					i = groups.length;
+					while ( i-- ) {
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
+					}
+					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
+				}
+
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+	var el = document.createElement("fieldset");
+
+	try {
+		return !!fn( el );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( el.parentNode ) {
+			el.parentNode.removeChild( el );
+		}
+		// release memory in IE
+		el = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = arr.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			a.sourceIndex - b.sourceIndex;
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+	return function( elem ) {
+
+		// Only certain elements can match :enabled or :disabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+		if ( "form" in elem ) {
+
+			// Check for inherited disabledness on relevant non-disabled elements:
+			// * listed form-associated elements in a disabled fieldset
+			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+			// * option elements in a disabled optgroup
+			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+			// All such elements have a "form" property.
+			if ( elem.parentNode && elem.disabled === false ) {
+
+				// Option elements defer to a parent optgroup if present
+				if ( "label" in elem ) {
+					if ( "label" in elem.parentNode ) {
+						return elem.parentNode.disabled === disabled;
+					} else {
+						return elem.disabled === disabled;
+					}
+				}
+
+				// Support: IE 6 - 11
+				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
+				return elem.isDisabled === disabled ||
+
+					// Where there is no isDisabled, check manually
+					/* jshint -W018 */
+					elem.isDisabled !== !disabled &&
+						disabledAncestor( elem ) === disabled;
+			}
+
+			return elem.disabled === disabled;
+
+		// Try to winnow out elements that can't be disabled before trusting the disabled property.
+		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+		// even exist on them, let alone have a boolean value.
+		} else if ( "label" in elem ) {
+			return elem.disabled === disabled;
+		}
+
+		// Remaining elements are neither :enabled nor :disabled
+		return false;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare, subWindow,
+		doc = node ? node.ownerDocument || node : preferredDoc;
+
+	// Return early if doc is invalid or already selected
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Update global variables
+	document = doc;
+	docElem = document.documentElement;
+	documentIsHTML = !isXML( document );
+
+	// Support: IE 9-11, Edge
+	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+		// Support: IE 11, Edge
+		if ( subWindow.addEventListener ) {
+			subWindow.addEventListener( "unload", unloadHandler, false );
+
+		// Support: IE 9 - 10 only
+		} else if ( subWindow.attachEvent ) {
+			subWindow.attachEvent( "onunload", unloadHandler );
+		}
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties
+	// (excepting IE8 booleans)
+	support.attributes = assert(function( el ) {
+		el.className = "i";
+		return !el.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
+
+	// Support: IE<9
+	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programmatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( el ) {
+		docElem.appendChild( el ).id = expando;
+		return !document.getElementsByName || !document.getElementsByName( expando ).length;
+	});
+
+	// ID filter and find
+	if ( support.getById ) {
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var elem = context.getElementById( id );
+				return elem ? [ elem ] : [];
+			}
+		};
+	} else {
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== "undefined" &&
+					elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+
+		// Support: IE 6 - 7 only
+		// getElementById is not reliable as a find shortcut
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+				var node, i, elems,
+					elem = context.getElementById( id );
+
+				if ( elem ) {
+
+					// Verify the id attribute
+					node = elem.getAttributeNode("id");
+					if ( node && node.value === id ) {
+						return [ elem ];
+					}
+
+					// Fall back on getElementsByName
+					elems = context.getElementsByName( id );
+					i = 0;
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
+						if ( node && node.value === id ) {
+							return [ elem ];
+						}
+					}
+				}
+
+				return [];
+			}
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== "undefined" ) {
+				return context.getElementsByTagName( tag );
+
+			// DocumentFragment nodes don't have gEBTN
+			} else if ( support.qsa ) {
+				return context.querySelectorAll( tag );
+			}
+		} :
+
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See https://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( el ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// https://bugs.jquery.com/ticket/12359
+			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
+				"<option selected=''></option></select>";
+
+			// Support: IE8, Opera 11-12.16
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			// The test attribute must be unknown in Opera but "safe" for WinRT
+			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !el.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+				rbuggyQSA.push("~=");
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !el.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+
+			// Support: Safari 8+, iOS 8+
+			// https://bugs.webkit.org/show_bug.cgi?id=136851
+			// In-page `selector#id sibling-combinator selector` fails
+			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+				rbuggyQSA.push(".#.+[+~]");
+			}
+		});
+
+		assert(function( el ) {
+			el.innerHTML = "<a href='' disabled='disabled'></a>" +
+				"<select disabled='disabled'><option/></select>";
+
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = document.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			el.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( el.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( el.querySelectorAll(":enabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Support: IE9-11+
+			// IE's :disabled selector does not pick up the children of disabled fieldsets
+			docElem.appendChild( el ).disabled = true;
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+		docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( el ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( el, "*" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( el, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+	// Element contains another
+	// Purposefully self-exclusive
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === document ? -1 :
+				b === document ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		!compilerCache[ expr + " " ] &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch (e) {}
+	}
+
+	return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
+
+Sizzle.escape = function( sel ) {
+	return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[6] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] ) {
+				match[2] = match[4] || match[5] || "";
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, uniqueCache, outerCache, node, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType,
+						diff = false;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) {
+
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+
+							// Seek `elem` from a previously-cached index
+
+							// ...in a gzip-friendly way
+							node = parent;
+							outerCache = node[ expando ] || (node[ expando ] = {});
+
+							// Support: IE <9 only
+							// Defend against cloned attroperties (jQuery gh-1709)
+							uniqueCache = outerCache[ node.uniqueID ] ||
+								(outerCache[ node.uniqueID ] = {});
+
+							cache = uniqueCache[ type ] || [];
+							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+							diff = nodeIndex && cache[ 2 ];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						} else {
+							// Use previously-cached element index if available
+							if ( useCache ) {
+								// ...in a gzip-friendly way
+								node = elem;
+								outerCache = node[ expando ] || (node[ expando ] = {});
+
+								// Support: IE <9 only
+								// Defend against cloned attroperties (jQuery gh-1709)
+								uniqueCache = outerCache[ node.uniqueID ] ||
+									(outerCache[ node.uniqueID ] = {});
+
+								cache = uniqueCache[ type ] || [];
+								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+								diff = nodeIndex;
+							}
+
+							// xml :nth-child(...)
+							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
+							if ( diff === false ) {
+								// Use the same loop as above to seek `elem` from the start
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
+
+									if ( ( ofType ?
+										node.nodeName.toLowerCase() === name :
+										node.nodeType === 1 ) &&
+										++diff ) {
+
+										// Cache the index of each encountered element
+										if ( useCache ) {
+											outerCache = node[ expando ] || (node[ expando ] = {});
+
+											// Support: IE <9 only
+											// Defend against cloned attroperties (jQuery gh-1709)
+											uniqueCache = outerCache[ node.uniqueID ] ||
+												(outerCache[ node.uniqueID ] = {});
+
+											uniqueCache[ type ] = [ dirruns, diff ];
+										}
+
+										if ( node === elem ) {
+											break;
+										}
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					// Don't keep the element (issue #299)
+					input[0] = null;
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			text = text.replace( runescape, funescape );
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": createDisabledPseudo( false ),
+		"disabled": createDisabledPseudo( true ),
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( (tokens = []) );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		skip = combinator.next,
+		key = skip || dir,
+		checkNonElements = base && key === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+			return false;
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, uniqueCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+						// Support: IE <9 only
+						// Defend against cloned attroperties (jQuery gh-1709)
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+						if ( skip && skip === elem.nodeName.toLowerCase() ) {
+							elem = elem[ dir ] || elem;
+						} else if ( (oldCache = uniqueCache[ key ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							uniqueCache[ key ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+			return false;
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+			// Avoid hanging onto element (issue #299)
+			checkContext = null;
+			return ret;
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
+
+			if ( outermost ) {
+				outermostContext = context === document || context || outermost;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					if ( !context && elem.ownerDocument !== document ) {
+						setDocument( elem );
+						xml = !documentIsHTML;
+					}
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// `i` is now the count of elements visited above, and adding it to `matchedCount`
+			// makes the latter nonnegative.
+			matchedCount += i;
+
+			// Apply set filters to unmatched elements
+			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+			// no element matchers and no seed.
+			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
+			// numerically zero.
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !match ) {
+			match = tokenize( selector );
+		}
+		i = match.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( match[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+		// Save selector and tokenization
+		cached.selector = selector;
+	}
+	return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		compiled = typeof selector === "function" && selector,
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+	results = results || [];
+
+	// Try to minimize operations if there is only one selector in the list and no seed
+	// (the latter of which guarantees us context)
+	if ( match.length === 1 ) {
+
+		// Reduce context if the leading compound selector is an ID
+		tokens = match[0] = match[0].slice( 0 );
+		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+			if ( !context ) {
+				return results;
+
+			// Precompiled matchers will still verify ancestry, so step up a level
+			} else if ( compiled ) {
+				context = context.parentNode;
+			}
+
+			selector = selector.slice( tokens.shift().value.length );
+		}
+
+		// Fetch a seed set for right-to-left matching
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+		while ( i-- ) {
+			token = tokens[i];
+
+			// Abort if we hit a combinator
+			if ( Expr.relative[ (type = token.type) ] ) {
+				break;
+			}
+			if ( (find = Expr.find[ type ]) ) {
+				// Search, expanding context for leading sibling combinators
+				if ( (seed = find(
+					token.matches[0].replace( runescape, funescape ),
+					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+				)) ) {
+
+					// If seed is empty or no tokens remain, we can return early
+					tokens.splice( i, 1 );
+					selector = seed.length && toSelector( tokens );
+					if ( !selector ) {
+						push.apply( results, seed );
+						return results;
+					}
+
+					break;
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function if one is not provided
+	// Provide `match` to avoid retokenization if we modified the selector above
+	( compiled || compile( selector, match ) )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+	// Should return 1, but returns 4 (following)
+	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+	el.innerHTML = "<a href='#'></a>";
+	return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+	el.innerHTML = "<input/>";
+	el.firstChild.setAttribute( "value", "" );
+	return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+	return el.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+	var matched = [],
+		truncate = until !== undefined;
+
+	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+		if ( elem.nodeType === 1 ) {
+			if ( truncate && jQuery( elem ).is( until ) ) {
+				break;
+			}
+			matched.push( elem );
+		}
+	}
+	return matched;
+};
+
+
+var siblings = function( n, elem ) {
+	var matched = [];
+
+	for ( ; n; n = n.nextSibling ) {
+		if ( n.nodeType === 1 && n !== elem ) {
+			matched.push( n );
+		}
+	}
+
+	return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			return !!qualifier.call( elem, i, elem ) !== not;
+		} );
+	}
+
+	// Single element
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		} );
+	}
+
+	// Arraylike of elements (jQuery, arguments, Array)
+	if ( typeof qualifier !== "string" ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+		} );
+	}
+
+	// Filtered directly for both simple and complex selectors
+	return jQuery.filter( qualifier, elements, not );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
+
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
+
+	if ( elems.length === 1 && elem.nodeType === 1 ) {
+		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+	}
+
+	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+		return elem.nodeType === 1;
+	} ) );
+};
+
+jQuery.fn.extend( {
+	find: function( selector ) {
+		var i, ret,
+			len = this.length,
+			self = this;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter( function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			} ) );
+		}
+
+		ret = this.pushStack( [] );
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+	},
+	filter: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], false ) );
+	},
+	not: function( selector ) {
+		return this.pushStack( winnow( this, selector || [], true ) );
+	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	// Shortcut simple #id case for speed
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+	init = jQuery.fn.init = function( selector, context, root ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Method init() accepts an alternate rootjQuery
+		// so migrate can support jQuery.sub (gh-2101)
+		root = root || rootjQuery;
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector[ 0 ] === "<" &&
+				selector[ selector.length - 1 ] === ">" &&
+				selector.length >= 3 ) {
+
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && ( match[ 1 ] || !context ) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[ 1 ] ) {
+					context = context instanceof jQuery ? context[ 0 ] : context;
+
+					// Option to run scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[ 1 ],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+
+							// Properties of context are called as methods if possible
+							if ( isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[ 2 ] );
+
+					if ( elem ) {
+
+						// Inject the element directly into the jQuery object
+						this[ 0 ] = elem;
+						this.length = 1;
+					}
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || root ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this[ 0 ] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( isFunction( selector ) ) {
+			return root.ready !== undefined ?
+				root.ready( selector ) :
+
+				// Execute immediately if ready is not present
+				selector( jQuery );
+		}
+
+		return jQuery.makeArray( selector, this );
+	};
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+	// Methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend( {
+	has: function( target ) {
+		var targets = jQuery( target, this ),
+			l = targets.length;
+
+		return this.filter( function() {
+			var i = 0;
+			for ( ; i < l; i++ ) {
+				if ( jQuery.contains( this, targets[ i ] ) ) {
+					return true;
+				}
+			}
+		} );
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			targets = typeof selectors !== "string" && jQuery( selectors );
+
+		// Positional selectors never match, since there's no _selection_ context
+		if ( !rneedsContext.test( selectors ) ) {
+			for ( ; i < l; i++ ) {
+				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+					// Always skip document fragments
+					if ( cur.nodeType < 11 && ( targets ?
+						targets.index( cur ) > -1 :
+
+						// Don't pass non-elements to Sizzle
+						cur.nodeType === 1 &&
+							jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+						matched.push( cur );
+						break;
+					}
+				}
+			}
+		}
+
+		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+	},
+
+	// Determine the position of an element within the set
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// Index in selector
+		if ( typeof elem === "string" ) {
+			return indexOf.call( jQuery( elem ), this[ 0 ] );
+		}
+
+		// Locate the position of the desired element
+		return indexOf.call( this,
+
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[ 0 ] : elem
+		);
+	},
+
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.uniqueSort(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	}
+} );
+
+function sibling( cur, dir ) {
+	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+	return cur;
+}
+
+jQuery.each( {
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return siblings( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return siblings( elem.firstChild );
+	},
+	contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var matched = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			matched = jQuery.filter( selector, matched );
+		}
+
+		if ( this.length > 1 ) {
+
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				jQuery.uniqueSort( matched );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				matched.reverse();
+			}
+		}
+
+		return this.pushStack( matched );
+	};
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+	var object = {};
+	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	} );
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		createOptions( options ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+
+		// Last fire value for non-forgettable lists
+		memory,
+
+		// Flag to know if list was already fired
+		fired,
+
+		// Flag to prevent firing
+		locked,
+
+		// Actual callback list
+		list = [],
+
+		// Queue of execution data for repeatable lists
+		queue = [],
+
+		// Index of currently firing callback (modified by add/remove as needed)
+		firingIndex = -1,
+
+		// Fire callbacks
+		fire = function() {
+
+			// Enforce single-firing
+			locked = locked || options.once;
+
+			// Execute callbacks for all pending executions,
+			// respecting firingIndex overrides and runtime changes
+			fired = firing = true;
+			for ( ; queue.length; firingIndex = -1 ) {
+				memory = queue.shift();
+				while ( ++firingIndex < list.length ) {
+
+					// Run callback and check for early termination
+					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+						options.stopOnFalse ) {
+
+						// Jump to end and forget the data so .add doesn't re-fire
+						firingIndex = list.length;
+						memory = false;
+					}
+				}
+			}
+
+			// Forget the data if we're done with it
+			if ( !options.memory ) {
+				memory = false;
+			}
+
+			firing = false;
+
+			// Clean up if we're done firing for good
+			if ( locked ) {
+
+				// Keep an empty list if we have data for future add calls
+				if ( memory ) {
+					list = [];
+
+				// Otherwise, this object is spent
+				} else {
+					list = "";
+				}
+			}
+		},
+
+		// Actual Callbacks object
+		self = {
+
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+
+					// If we have memory from a past run, we should fire after adding
+					if ( memory && !firing ) {
+						firingIndex = list.length - 1;
+						queue.push( memory );
+					}
+
+					( function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							if ( isFunction( arg ) ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && toType( arg ) !== "string" ) {
+
+								// Inspect recursively
+								add( arg );
+							}
+						} );
+					} )( arguments );
+
+					if ( memory && !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Remove a callback from the list
+			remove: function() {
+				jQuery.each( arguments, function( _, arg ) {
+					var index;
+					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+						list.splice( index, 1 );
+
+						// Handle firing indexes
+						if ( index <= firingIndex ) {
+							firingIndex--;
+						}
+					}
+				} );
+				return this;
+			},
+
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ?
+					jQuery.inArray( fn, list ) > -1 :
+					list.length > 0;
+			},
+
+			// Remove all callbacks from the list
+			empty: function() {
+				if ( list ) {
+					list = [];
+				}
+				return this;
+			},
+
+			// Disable .fire and .add
+			// Abort any current/pending executions
+			// Clear all callbacks and values
+			disable: function() {
+				locked = queue = [];
+				list = memory = "";
+				return this;
+			},
+			disabled: function() {
+				return !list;
+			},
+
+			// Disable .fire
+			// Also disable .add unless we have memory (since it would have no effect)
+			// Abort any pending executions
+			lock: function() {
+				locked = queue = [];
+				if ( !memory && !firing ) {
+					list = memory = "";
+				}
+				return this;
+			},
+			locked: function() {
+				return !!locked;
+			},
+
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( !locked ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					queue.push( args );
+					if ( !firing ) {
+						fire();
+					}
+				}
+				return this;
+			},
+
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+
+
+function Identity( v ) {
+	return v;
+}
+function Thrower( ex ) {
+	throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+	var method;
+
+	try {
+
+		// Check for promise aspect first to privilege synchronous behavior
+		if ( value && isFunction( ( method = value.promise ) ) ) {
+			method.call( value ).done( resolve ).fail( reject );
+
+		// Other thenables
+		} else if ( value && isFunction( ( method = value.then ) ) ) {
+			method.call( value, resolve, reject );
+
+		// Other non-thenables
+		} else {
+
+			// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+			// * false: [ value ].slice( 0 ) => resolve( value )
+			// * true: [ value ].slice( 1 ) => resolve()
+			resolve.apply( undefined, [ value ].slice( noValue ) );
+		}
+
+	// For Promises/A+, convert exceptions into rejections
+	// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+	// Deferred#then to conditionally suppress rejection.
+	} catch ( value ) {
+
+		// Support: Android 4.0 only
+		// Strict mode functions invoked without .call/.apply get global-object context
+		reject.apply( undefined, [ value ] );
+	}
+}
+
+jQuery.extend( {
+
+	Deferred: function( func ) {
+		var tuples = [
+
+				// action, add listener, callbacks,
+				// ... .then handlers, argument index, [final state]
+				[ "notify", "progress", jQuery.Callbacks( "memory" ),
+					jQuery.Callbacks( "memory" ), 2 ],
+				[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+					jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				"catch": function( fn ) {
+					return promise.then( null, fn );
+				},
+
+				// Keep pipe for back-compat
+				pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+
+					return jQuery.Deferred( function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+
+							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
+							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+							// deferred.progress(function() { bind to newDefer or newDefer.notify })
+							// deferred.done(function() { bind to newDefer or newDefer.resolve })
+							// deferred.fail(function() { bind to newDefer or newDefer.reject })
+							deferred[ tuple[ 1 ] ]( function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && isFunction( returned.promise ) ) {
+									returned.promise()
+										.progress( newDefer.notify )
+										.done( newDefer.resolve )
+										.fail( newDefer.reject );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ](
+										this,
+										fn ? [ returned ] : arguments
+									);
+								}
+							} );
+						} );
+						fns = null;
+					} ).promise();
+				},
+				then: function( onFulfilled, onRejected, onProgress ) {
+					var maxDepth = 0;
+					function resolve( depth, deferred, handler, special ) {
+						return function() {
+							var that = this,
+								args = arguments,
+								mightThrow = function() {
+									var returned, then;
+
+									// Support: Promises/A+ section 2.3.3.3.3
+									// https://promisesaplus.com/#point-59
+									// Ignore double-resolution attempts
+									if ( depth < maxDepth ) {
+										return;
+									}
+
+									returned = handler.apply( that, args );
+
+									// Support: Promises/A+ section 2.3.1
+									// https://promisesaplus.com/#point-48
+									if ( returned === deferred.promise() ) {
+										throw new TypeError( "Thenable self-resolution" );
+									}
+
+									// Support: Promises/A+ sections 2.3.3.1, 3.5
+									// https://promisesaplus.com/#point-54
+									// https://promisesaplus.com/#point-75
+									// Retrieve `then` only once
+									then = returned &&
+
+										// Support: Promises/A+ section 2.3.4
+										// https://promisesaplus.com/#point-64
+										// Only check objects and functions for thenability
+										( typeof returned === "object" ||
+											typeof returned === "function" ) &&
+										returned.then;
+
+									// Handle a returned thenable
+									if ( isFunction( then ) ) {
+
+										// Special processors (notify) just wait for resolution
+										if ( special ) {
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special )
+											);
+
+										// Normal processors (resolve) also hook into progress
+										} else {
+
+											// ...and disregard older resolution values
+											maxDepth++;
+
+											then.call(
+												returned,
+												resolve( maxDepth, deferred, Identity, special ),
+												resolve( maxDepth, deferred, Thrower, special ),
+												resolve( maxDepth, deferred, Identity,
+													deferred.notifyWith )
+											);
+										}
+
+									// Handle all other returned values
+									} else {
+
+										// Only substitute handlers pass on context
+										// and multiple values (non-spec behavior)
+										if ( handler !== Identity ) {
+											that = undefined;
+											args = [ returned ];
+										}
+
+										// Process the value(s)
+										// Default process is resolve
+										( special || deferred.resolveWith )( that, args );
+									}
+								},
+
+								// Only normal processors (resolve) catch and reject exceptions
+								process = special ?
+									mightThrow :
+									function() {
+										try {
+											mightThrow();
+										} catch ( e ) {
+
+											if ( jQuery.Deferred.exceptionHook ) {
+												jQuery.Deferred.exceptionHook( e,
+													process.stackTrace );
+											}
+
+											// Support: Promises/A+ section 2.3.3.3.4.1
+											// https://promisesaplus.com/#point-61
+											// Ignore post-resolution exceptions
+											if ( depth + 1 >= maxDepth ) {
+
+												// Only substitute handlers pass on context
+												// and multiple values (non-spec behavior)
+												if ( handler !== Thrower ) {
+													that = undefined;
+													args = [ e ];
+												}
+
+												deferred.rejectWith( that, args );
+											}
+										}
+									};
+
+							// Support: Promises/A+ section 2.3.3.3.1
+							// https://promisesaplus.com/#point-57
+							// Re-resolve promises immediately to dodge false rejection from
+							// subsequent errors
+							if ( depth ) {
+								process();
+							} else {
+
+								// Call an optional hook to record the stack, in case of exception
+								// since it's otherwise lost when execution goes async
+								if ( jQuery.Deferred.getStackHook ) {
+									process.stackTrace = jQuery.Deferred.getStackHook();
+								}
+								window.setTimeout( process );
+							}
+						};
+					}
+
+					return jQuery.Deferred( function( newDefer ) {
+
+						// progress_handlers.add( ... )
+						tuples[ 0 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onProgress ) ?
+									onProgress :
+									Identity,
+								newDefer.notifyWith
+							)
+						);
+
+						// fulfilled_handlers.add( ... )
+						tuples[ 1 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onFulfilled ) ?
+									onFulfilled :
+									Identity
+							)
+						);
+
+						// rejected_handlers.add( ... )
+						tuples[ 2 ][ 3 ].add(
+							resolve(
+								0,
+								newDefer,
+								isFunction( onRejected ) ?
+									onRejected :
+									Thrower
+							)
+						);
+					} ).promise();
+				},
+
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 5 ];
+
+			// promise.progress = list.add
+			// promise.done = list.add
+			// promise.fail = list.add
+			promise[ tuple[ 1 ] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(
+					function() {
+
+						// state = "resolved" (i.e., fulfilled)
+						// state = "rejected"
+						state = stateString;
+					},
+
+					// rejected_callbacks.disable
+					// fulfilled_callbacks.disable
+					tuples[ 3 - i ][ 2 ].disable,
+
+					// rejected_handlers.disable
+					// fulfilled_handlers.disable
+					tuples[ 3 - i ][ 3 ].disable,
+
+					// progress_callbacks.lock
+					tuples[ 0 ][ 2 ].lock,
+
+					// progress_handlers.lock
+					tuples[ 0 ][ 3 ].lock
+				);
+			}
+
+			// progress_handlers.fire
+			// fulfilled_handlers.fire
+			// rejected_handlers.fire
+			list.add( tuple[ 3 ].fire );
+
+			// deferred.notify = function() { deferred.notifyWith(...) }
+			// deferred.resolve = function() { deferred.resolveWith(...) }
+			// deferred.reject = function() { deferred.rejectWith(...) }
+			deferred[ tuple[ 0 ] ] = function() {
+				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+				return this;
+			};
+
+			// deferred.notifyWith = list.fireWith
+			// deferred.resolveWith = list.fireWith
+			// deferred.rejectWith = list.fireWith
+			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+		} );
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( singleValue ) {
+		var
+
+			// count of uncompleted subordinates
+			remaining = arguments.length,
+
+			// count of unprocessed arguments
+			i = remaining,
+
+			// subordinate fulfillment data
+			resolveContexts = Array( i ),
+			resolveValues = slice.call( arguments ),
+
+			// the master Deferred
+			master = jQuery.Deferred(),
+
+			// subordinate callback factory
+			updateFunc = function( i ) {
+				return function( value ) {
+					resolveContexts[ i ] = this;
+					resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( !( --remaining ) ) {
+						master.resolveWith( resolveContexts, resolveValues );
+					}
+				};
+			};
+
+		// Single- and empty arguments are adopted like Promise.resolve
+		if ( remaining <= 1 ) {
+			adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+				!remaining );
+
+			// Use .then() to unwrap secondary thenables (cf. gh-3000)
+			if ( master.state() === "pending" ||
+				isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+				return master.then();
+			}
+		}
+
+		// Multiple arguments are aggregated like Promise.all array elements
+		while ( i-- ) {
+			adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+		}
+
+		return master.promise();
+	}
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+	// Support: IE 8 - 9 only
+	// Console exists when dev tools are open, which can happen at any time
+	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+		window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+	}
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+	window.setTimeout( function() {
+		throw error;
+	} );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+	readyList
+		.then( fn )
+
+		// Wrap jQuery.readyException in a function so that the lookup
+		// happens at the time of error handling instead of callback
+		// registration.
+		.catch( function( error ) {
+			jQuery.readyException( error );
+		} );
+
+	return this;
+};
+
+jQuery.extend( {
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+	}
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+	document.removeEventListener( "DOMContentLoaded", completed );
+	window.removeEventListener( "load", completed );
+	jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+	( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+	// Handle it asynchronously to allow scripts the opportunity to delay ready
+	window.setTimeout( jQuery.ready );
+
+} else {
+
+	// Use the handy event callback
+	document.addEventListener( "DOMContentLoaded", completed );
+
+	// A fallback to window.onload, that will always work
+	window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		len = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( toType( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			access( elems, fn, i, key[ i ], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
+			}
+		}
+
+		if ( fn ) {
+			for ( ; i < len; i++ ) {
+				fn(
+					elems[ i ], key, raw ?
+					value :
+					value.call( elems[ i ], i, fn( elems[ i ], key ) )
+				);
+			}
+		}
+	}
+
+	if ( chainable ) {
+		return elems;
+	}
+
+	// Gets
+	if ( bulk ) {
+		return fn.call( elems );
+	}
+
+	return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+
+// Matches dashed string for camelizing
+var rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([a-z])/g;
+
+// Used by camelCase as callback to replace()
+function fcamelCase( all, letter ) {
+	return letter.toUpperCase();
+}
+
+// Convert dashed to camelCase; used by the css and data modules
+// Support: IE <=9 - 11, Edge 12 - 15
+// Microsoft forgot to hump their vendor prefix (#9572)
+function camelCase( string ) {
+	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+}
+var acceptData = function( owner ) {
+
+	// Accepts only:
+	//  - Node
+	//    - Node.ELEMENT_NODE
+	//    - Node.DOCUMENT_NODE
+	//  - Object
+	//    - Any
+	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+	this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+	cache: function( owner ) {
+
+		// Check if the owner object already has a cache
+		var value = owner[ this.expando ];
+
+		// If not, create one
+		if ( !value ) {
+			value = {};
+
+			// We can accept data for non-element nodes in modern browsers,
+			// but we should not, see #8335.
+			// Always return an empty object.
+			if ( acceptData( owner ) ) {
+
+				// If it is a node unlikely to be stringify-ed or looped over
+				// use plain assignment
+				if ( owner.nodeType ) {
+					owner[ this.expando ] = value;
+
+				// Otherwise secure it in a non-enumerable property
+				// configurable must be true to allow the property to be
+				// deleted when data is removed
+				} else {
+					Object.defineProperty( owner, this.expando, {
+						value: value,
+						configurable: true
+					} );
+				}
+			}
+		}
+
+		return value;
+	},
+	set: function( owner, data, value ) {
+		var prop,
+			cache = this.cache( owner );
+
+		// Handle: [ owner, key, value ] args
+		// Always use camelCase key (gh-2257)
+		if ( typeof data === "string" ) {
+			cache[ camelCase( data ) ] = value;
+
+		// Handle: [ owner, { properties } ] args
+		} else {
+
+			// Copy the properties one-by-one to the cache object
+			for ( prop in data ) {
+				cache[ camelCase( prop ) ] = data[ prop ];
+			}
+		}
+		return cache;
+	},
+	get: function( owner, key ) {
+		return key === undefined ?
+			this.cache( owner ) :
+
+			// Always use camelCase key (gh-2257)
+			owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
+	},
+	access: function( owner, key, value ) {
+
+		// In cases where either:
+		//
+		//   1. No key was specified
+		//   2. A string key was specified, but no value provided
+		//
+		// Take the "read" path and allow the get method to determine
+		// which value to return, respectively either:
+		//
+		//   1. The entire cache object
+		//   2. The data stored at the key
+		//
+		if ( key === undefined ||
+				( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+			return this.get( owner, key );
+		}
+
+		// When the key is not a string, or both a key and value
+		// are specified, set or extend (existing objects) with either:
+		//
+		//   1. An object of properties
+		//   2. A key and value
+		//
+		this.set( owner, key, value );
+
+		// Since the "set" path can have two possible entry points
+		// return the expected data based on which path was taken[*]
+		return value !== undefined ? value : key;
+	},
+	remove: function( owner, key ) {
+		var i,
+			cache = owner[ this.expando ];
+
+		if ( cache === undefined ) {
+			return;
+		}
+
+		if ( key !== undefined ) {
+
+			// Support array or space separated string of keys
+			if ( Array.isArray( key ) ) {
+
+				// If key is an array of keys...
+				// We always set camelCase keys, so remove that.
+				key = key.map( camelCase );
+			} else {
+				key = camelCase( key );
+
+				// If a key with the spaces exists, use it.
+				// Otherwise, create an array by matching non-whitespace
+				key = key in cache ?
+					[ key ] :
+					( key.match( rnothtmlwhite ) || [] );
+			}
+
+			i = key.length;
+
+			while ( i-- ) {
+				delete cache[ key[ i ] ];
+			}
+		}
+
+		// Remove the expando if there's no more data
+		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+			// Support: Chrome <=35 - 45
+			// Webkit & Blink performance suffers when deleting properties
+			// from DOM nodes, so set to undefined instead
+			// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+			if ( owner.nodeType ) {
+				owner[ this.expando ] = undefined;
+			} else {
+				delete owner[ this.expando ];
+			}
+		}
+	},
+	hasData: function( owner ) {
+		var cache = owner[ this.expando ];
+		return cache !== undefined && !jQuery.isEmptyObject( cache );
+	}
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//	Implementation Summary
+//
+//	1. Enforce API surface and semantic compatibility with 1.9.x branch
+//	2. Improve the module's maintainability by reducing the storage
+//		paths to a single mechanism.
+//	3. Use the same single mechanism to support "private" and "user" data.
+//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//	5. Avoid exposing implementation details on user objects (eg. expando properties)
+//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+	if ( data === "true" ) {
+		return true;
+	}
+
+	if ( data === "false" ) {
+		return false;
+	}
+
+	if ( data === "null" ) {
+		return null;
+	}
+
+	// Only convert to a number if it doesn't change the string
+	if ( data === +data + "" ) {
+		return +data;
+	}
+
+	if ( rbrace.test( data ) ) {
+		return JSON.parse( data );
+	}
+
+	return data;
+}
+
+function dataAttr( elem, key, data ) {
+	var name;
+
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = getData( data );
+			} catch ( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			dataUser.set( elem, key, data );
+		} else {
+			data = undefined;
+		}
+	}
+	return data;
+}
+
+jQuery.extend( {
+	hasData: function( elem ) {
+		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return dataUser.access( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		dataUser.remove( elem, name );
+	},
+
+	// TODO: Now that all calls to _data and _removeData have been replaced
+	// with direct calls to dataPriv methods, these can be deprecated.
+	_data: function( elem, name, data ) {
+		return dataPriv.access( elem, name, data );
+	},
+
+	_removeData: function( elem, name ) {
+		dataPriv.remove( elem, name );
+	}
+} );
+
+jQuery.fn.extend( {
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[ 0 ],
+			attrs = elem && elem.attributes;
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = dataUser.get( elem );
+
+				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+
+						// Support: IE 11 only
+						// The attrs elements can be null (#14894)
+						if ( attrs[ i ] ) {
+							name = attrs[ i ].name;
+							if ( name.indexOf( "data-" ) === 0 ) {
+								name = camelCase( name.slice( 5 ) );
+								dataAttr( elem, name, data[ name ] );
+							}
+						}
+					}
+					dataPriv.set( elem, "hasDataAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each( function() {
+				dataUser.set( this, key );
+			} );
+		}
+
+		return access( this, function( value ) {
+			var data;
+
+			// The calling jQuery object (element matches) is not empty
+			// (and therefore has an element appears at this[ 0 ]) and the
+			// `value` parameter was not undefined. An empty jQuery object
+			// will result in `undefined` for elem = this[ 0 ] which will
+			// throw an exception if an attempt to read a data cache is made.
+			if ( elem && value === undefined ) {
+
+				// Attempt to get data from the cache
+				// The key will always be camelCased in Data
+				data = dataUser.get( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// Attempt to "discover" the data in
+				// HTML5 custom data-* attrs
+				data = dataAttr( elem, key );
+				if ( data !== undefined ) {
+					return data;
+				}
+
+				// We tried really hard, but the data doesn't exist.
+				return;
+			}
+
+			// Set the data...
+			this.each( function() {
+
+				// We always store the camelCased key
+				dataUser.set( this, key, value );
+			} );
+		}, null, value, arguments.length > 1, null, true );
+	},
+
+	removeData: function( key ) {
+		return this.each( function() {
+			dataUser.remove( this, key );
+		} );
+	}
+} );
+
+
+jQuery.extend( {
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = dataPriv.get( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || Array.isArray( data ) ) {
+					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// Clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// Not public - generate a queueHooks object, or return the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+			empty: jQuery.Callbacks( "once memory" ).add( function() {
+				dataPriv.remove( elem, [ type + "queue", key ] );
+			} )
+		} );
+	}
+} );
+
+jQuery.fn.extend( {
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[ 0 ], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each( function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// Ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			} );
+	},
+	dequeue: function( type ) {
+		return this.each( function() {
+			jQuery.dequeue( this, type );
+		} );
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while ( i-- ) {
+			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+		// isHiddenWithinTree might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+
+		// Inline style trumps all
+		return elem.style.display === "none" ||
+			elem.style.display === "" &&
+
+			// Otherwise, check computed style
+			// Support: Firefox <=43 - 45
+			// Disconnected elements can have computed display: none, so first confirm that elem is
+			// in the document.
+			jQuery.contains( elem.ownerDocument, elem ) &&
+
+			jQuery.css( elem, "display" ) === "none";
+	};
+
+var swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+	var adjusted, scale,
+		maxIterations = 20,
+		currentValue = tween ?
+			function() {
+				return tween.cur();
+			} :
+			function() {
+				return jQuery.css( elem, prop, "" );
+			},
+		initial = currentValue(),
+		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+		// Starting value computation is required for potential unit mismatches
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+			rcssNum.exec( jQuery.css( elem, prop ) );
+
+	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+		// Support: Firefox <=54
+		// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
+		initial = initial / 2;
+
+		// Trust units reported by jQuery.css
+		unit = unit || initialInUnit[ 3 ];
+
+		// Iteratively approximate from a nonzero starting point
+		initialInUnit = +initial || 1;
+
+		while ( maxIterations-- ) {
+
+			// Evaluate and update our best guess (doubling guesses that zero out).
+			// Finish if the scale equals or crosses 1 (making the old*new product non-positive).
+			jQuery.style( elem, prop, initialInUnit + unit );
+			if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
+				maxIterations = 0;
+			}
+			initialInUnit = initialInUnit / scale;
+
+		}
+
+		initialInUnit = initialInUnit * 2;
+		jQuery.style( elem, prop, initialInUnit + unit );
+
+		// Make sure we update the tween properties later on
+		valueParts = valueParts || [];
+	}
+
+	if ( valueParts ) {
+		initialInUnit = +initialInUnit || +initial || 0;
+
+		// Apply relative offset (+=/-=) if specified
+		adjusted = valueParts[ 1 ] ?
+			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+			+valueParts[ 2 ];
+		if ( tween ) {
+			tween.unit = unit;
+			tween.start = initialInUnit;
+			tween.end = adjusted;
+		}
+	}
+	return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+	var temp,
+		doc = elem.ownerDocument,
+		nodeName = elem.nodeName,
+		display = defaultDisplayMap[ nodeName ];
+
+	if ( display ) {
+		return display;
+	}
+
+	temp = doc.body.appendChild( doc.createElement( nodeName ) );
+	display = jQuery.css( temp, "display" );
+
+	temp.parentNode.removeChild( temp );
+
+	if ( display === "none" ) {
+		display = "block";
+	}
+	defaultDisplayMap[ nodeName ] = display;
+
+	return display;
+}
+
+function showHide( elements, show ) {
+	var display, elem,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	// Determine new display value for elements that need to change
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		display = elem.style.display;
+		if ( show ) {
+
+			// Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+			// check is required in this first loop unless we have a nonempty display value (either
+			// inline or about-to-be-restored)
+			if ( display === "none" ) {
+				values[ index ] = dataPriv.get( elem, "display" ) || null;
+				if ( !values[ index ] ) {
+					elem.style.display = "";
+				}
+			}
+			if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+				values[ index ] = getDefaultDisplay( elem );
+			}
+		} else {
+			if ( display !== "none" ) {
+				values[ index ] = "none";
+
+				// Remember what we're overwriting
+				dataPriv.set( elem, "display", display );
+			}
+		}
+	}
+
+	// Set the display of the elements in a second loop to avoid constant reflow
+	for ( index = 0; index < length; index++ ) {
+		if ( values[ index ] != null ) {
+			elements[ index ].style.display = values[ index ];
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend( {
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each( function() {
+			if ( isHiddenWithinTree( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		} );
+	}
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+	// Support: IE <=9 only
+	option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+	// XHTML parsers do not magically insert elements in the
+	// same way that tag soup parsers do. So we cannot shorten
+	// this by omitting <tbody> or other required elements.
+	thead: [ 1, "<table>", "</table>" ],
+	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+	_default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+	// Support: IE <=9 - 11 only
+	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
+	var ret;
+
+	if ( typeof context.getElementsByTagName !== "undefined" ) {
+		ret = context.getElementsByTagName( tag || "*" );
+
+	} else if ( typeof context.querySelectorAll !== "undefined" ) {
+		ret = context.querySelectorAll( tag || "*" );
+
+	} else {
+		ret = [];
+	}
+
+	if ( tag === undefined || tag && nodeName( context, tag ) ) {
+		return jQuery.merge( [ context ], ret );
+	}
+
+	return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		dataPriv.set(
+			elems[ i ],
+			"globalEval",
+			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
+		);
+	}
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+	var elem, tmp, tag, wrap, contains, j,
+		fragment = context.createDocumentFragment(),
+		nodes = [],
+		i = 0,
+		l = elems.length;
+
+	for ( ; i < l; i++ ) {
+		elem = elems[ i ];
+
+		if ( elem || elem === 0 ) {
+
+			// Add nodes directly
+			if ( toType( elem ) === "object" ) {
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+			// Convert non-html into a text node
+			} else if ( !rhtml.test( elem ) ) {
+				nodes.push( context.createTextNode( elem ) );
+
+			// Convert html into DOM nodes
+			} else {
+				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+				// Deserialize a standard representation
+				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+				wrap = wrapMap[ tag ] || wrapMap._default;
+				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+				// Descend through wrappers to the right content
+				j = wrap[ 0 ];
+				while ( j-- ) {
+					tmp = tmp.lastChild;
+				}
+
+				// Support: Android <=4.0 only, PhantomJS 1 only
+				// push.apply(_, arraylike) throws on ancient WebKit
+				jQuery.merge( nodes, tmp.childNodes );
+
+				// Remember the top-level container
+				tmp = fragment.firstChild;
+
+				// Ensure the created nodes are orphaned (#12392)
+				tmp.textContent = "";
+			}
+		}
+	}
+
+	// Remove wrapper from fragment
+	fragment.textContent = "";
+
+	i = 0;
+	while ( ( elem = nodes[ i++ ] ) ) {
+
+		// Skip elements already in the context collection (trac-4087)
+		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+			if ( ignored ) {
+				ignored.push( elem );
+			}
+			continue;
+		}
+
+		contains = jQuery.contains( elem.ownerDocument, elem );
+
+		// Append to fragment
+		tmp = getAll( fragment.appendChild( elem ), "script" );
+
+		// Preserve script evaluation history
+		if ( contains ) {
+			setGlobalEval( tmp );
+		}
+
+		// Capture executables
+		if ( scripts ) {
+			j = 0;
+			while ( ( elem = tmp[ j++ ] ) ) {
+				if ( rscriptType.test( elem.type || "" ) ) {
+					scripts.push( elem );
+				}
+			}
+		}
+	}
+
+	return fragment;
+}
+
+
+( function() {
+	var fragment = document.createDocumentFragment(),
+		div = fragment.appendChild( document.createElement( "div" ) ),
+		input = document.createElement( "input" );
+
+	// Support: Android 4.0 - 4.3 only
+	// Check state lost if the name is set (#11217)
+	// Support: Windows Web Apps (WWA)
+	// `name` and `type` must use .setAttribute for WWA (#14901)
+	input.setAttribute( "type", "radio" );
+	input.setAttribute( "checked", "checked" );
+	input.setAttribute( "name", "t" );
+
+	div.appendChild( input );
+
+	// Support: Android <=4.1 only
+	// Older WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE <=11 only
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+	var origFn, type;
+
+	// Types can be a map of types/handlers
+	if ( typeof types === "object" ) {
+
+		// ( types-Object, selector, data )
+		if ( typeof selector !== "string" ) {
+
+			// ( types-Object, data )
+			data = data || selector;
+			selector = undefined;
+		}
+		for ( type in types ) {
+			on( elem, type, selector, data, types[ type ], one );
+		}
+		return elem;
+	}
+
+	if ( data == null && fn == null ) {
+
+		// ( types, fn )
+		fn = selector;
+		data = selector = undefined;
+	} else if ( fn == null ) {
+		if ( typeof selector === "string" ) {
+
+			// ( types, selector, fn )
+			fn = data;
+			data = undefined;
+		} else {
+
+			// ( types, data, fn )
+			fn = data;
+			data = selector;
+			selector = undefined;
+		}
+	}
+	if ( fn === false ) {
+		fn = returnFalse;
+	} else if ( !fn ) {
+		return elem;
+	}
+
+	if ( one === 1 ) {
+		origFn = fn;
+		fn = function( event ) {
+
+			// Can use an empty set, since event contains the info
+			jQuery().off( event );
+			return origFn.apply( this, arguments );
+		};
+
+		// Use same guid so caller can remove using origFn
+		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+	}
+	return elem.each( function() {
+		jQuery.event.add( this, types, fn, data, selector );
+	} );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+
+		var handleObjIn, eventHandle, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.get( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Ensure that invalid selectors throw exceptions at attach time
+		// Evaluate against documentElement in case elem is a non-element node (e.g., document)
+		if ( selector ) {
+			jQuery.find.matchesSelector( documentElement, selector );
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !( events = elemData.events ) ) {
+			events = elemData.events = {};
+		}
+		if ( !( eventHandle = elemData.handle ) ) {
+			eventHandle = elemData.handle = function( e ) {
+
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+			};
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend( {
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join( "." )
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !( handlers = events[ type ] ) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener if the special events handler returns false
+				if ( !special.setup ||
+					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+
+		var j, origCount, tmp,
+			events, t, handleObj,
+			special, handlers, type, namespaces, origType,
+			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+		if ( !elemData || !( events = elemData.events ) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[ t ] ) || [];
+			type = origType = tmp[ 1 ];
+			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[ 2 ] &&
+				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector ||
+						selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown ||
+					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove data and the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			dataPriv.remove( elem, "handle events" );
+		}
+	},
+
+	dispatch: function( nativeEvent ) {
+
+		// Make a writable jQuery.Event from the native event object
+		var event = jQuery.event.fix( nativeEvent );
+
+		var i, j, ret, matched, handleObj, handlerQueue,
+			args = new Array( arguments.length ),
+			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[ 0 ] = event;
+
+		for ( i = 1; i < arguments.length; i++ ) {
+			args[ i ] = arguments[ i ];
+		}
+
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( ( handleObj = matched.handlers[ j++ ] ) &&
+				!event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
+				// a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+						handleObj.handler ).apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( ( event.result = ret ) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var i, handleObj, sel, matchedHandlers, matchedSelectors,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		if ( delegateCount &&
+
+			// Support: IE <=9
+			// Black-hole SVG <use> instance trees (trac-13180)
+			cur.nodeType &&
+
+			// Support: Firefox <=42
+			// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+			// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+			// Support: IE 11 only
+			// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+			!( event.type === "click" && event.button >= 1 ) ) {
+
+			for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+					matchedHandlers = [];
+					matchedSelectors = {};
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matchedSelectors[ sel ] === undefined ) {
+							matchedSelectors[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) > -1 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matchedSelectors[ sel ] ) {
+							matchedHandlers.push( handleObj );
+						}
+					}
+					if ( matchedHandlers.length ) {
+						handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		cur = this;
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+		}
+
+		return handlerQueue;
+	},
+
+	addProp: function( name, hook ) {
+		Object.defineProperty( jQuery.Event.prototype, name, {
+			enumerable: true,
+			configurable: true,
+
+			get: isFunction( hook ) ?
+				function() {
+					if ( this.originalEvent ) {
+							return hook( this.originalEvent );
+					}
+				} :
+				function() {
+					if ( this.originalEvent ) {
+							return this.originalEvent[ name ];
+					}
+				},
+
+			set: function( value ) {
+				Object.defineProperty( this, name, {
+					enumerable: true,
+					configurable: true,
+					writable: true,
+					value: value
+				} );
+			}
+		} );
+	},
+
+	fix: function( originalEvent ) {
+		return originalEvent[ jQuery.expando ] ?
+			originalEvent :
+			new jQuery.Event( originalEvent );
+	},
+
+	special: {
+		load: {
+
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Support: Firefox 20+
+				// Firefox doesn't alert if the returnValue field is not set.
+				if ( event.result !== undefined && event.originalEvent ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	}
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+	// This "if" is needed for plain objects
+	if ( elem.removeEventListener ) {
+		elem.removeEventListener( type, handle );
+	}
+};
+
+jQuery.Event = function( src, props ) {
+
+	// Allow instantiation without the 'new' keyword
+	if ( !( this instanceof jQuery.Event ) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined &&
+
+				// Support: Android <=2.3 only
+				src.returnValue === false ?
+			returnTrue :
+			returnFalse;
+
+		// Create target properties
+		// Support: Safari <=6 - 7 only
+		// Target should not be a text node (#504, #13143)
+		this.target = ( src.target && src.target.nodeType === 3 ) ?
+			src.target.parentNode :
+			src.target;
+
+		this.currentTarget = src.currentTarget;
+		this.relatedTarget = src.relatedTarget;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || Date.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	constructor: jQuery.Event,
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+	isSimulated: false,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.preventDefault();
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopPropagation();
+		}
+	},
+	stopImmediatePropagation: function() {
+		var e = this.originalEvent;
+
+		this.isImmediatePropagationStopped = returnTrue;
+
+		if ( e && !this.isSimulated ) {
+			e.stopImmediatePropagation();
+		}
+
+		this.stopPropagation();
+	}
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+	altKey: true,
+	bubbles: true,
+	cancelable: true,
+	changedTouches: true,
+	ctrlKey: true,
+	detail: true,
+	eventPhase: true,
+	metaKey: true,
+	pageX: true,
+	pageY: true,
+	shiftKey: true,
+	view: true,
+	"char": true,
+	charCode: true,
+	key: true,
+	keyCode: true,
+	button: true,
+	buttons: true,
+	clientX: true,
+	clientY: true,
+	offsetX: true,
+	offsetY: true,
+	pointerId: true,
+	pointerType: true,
+	screenX: true,
+	screenY: true,
+	targetTouches: true,
+	toElement: true,
+	touches: true,
+
+	which: function( event ) {
+		var button = event.button;
+
+		// Add which for key events
+		if ( event.which == null && rkeyEvent.test( event.type ) ) {
+			return event.charCode != null ? event.charCode : event.keyCode;
+		}
+
+		// Add which for click: 1 === left; 2 === middle; 3 === right
+		if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+			if ( button & 1 ) {
+				return 1;
+			}
+
+			if ( button & 2 ) {
+				return 3;
+			}
+
+			if ( button & 4 ) {
+				return 2;
+			}
+
+			return 0;
+		}
+
+		return event.which;
+	}
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+	mouseenter: "mouseover",
+	mouseleave: "mouseout",
+	pointerenter: "pointerover",
+	pointerleave: "pointerout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mouseenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+} );
+
+jQuery.fn.extend( {
+
+	on: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn );
+	},
+	one: function( types, selector, data, fn ) {
+		return on( this, types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ?
+					handleObj.origType + "." + handleObj.namespace :
+					handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each( function() {
+			jQuery.event.remove( this, types, fn, selector );
+		} );
+	}
+} );
+
+
+var
+
+	/* eslint-disable max-len */
+
+	// See https://github.com/eslint/eslint/issues/3229
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+	/* eslint-enable */
+
+	// Support: IE <=10 - 11, Edge 12 - 13 only
+	// In IE/Edge using regex groups here causes severe slowdowns.
+	// See https://connect.microsoft.com/IE/feedback/details/1736512/
+	rnoInnerhtml = /<script|<style|<link/i,
+
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+	if ( nodeName( elem, "table" ) &&
+		nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+		return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
+	}
+
+	return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
+		elem.type = elem.type.slice( 5 );
+	} else {
+		elem.removeAttribute( "type" );
+	}
+
+	return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	// 1. Copy private data: events, handlers, etc.
+	if ( dataPriv.hasData( src ) ) {
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
+		events = pdataOld.events;
+
+		if ( events ) {
+			delete pdataCur.handle;
+			pdataCur.events = {};
+
+			for ( type in events ) {
+				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+					jQuery.event.add( dest, type, events[ type ][ i ] );
+				}
+			}
+		}
+	}
+
+	// 2. Copy user data
+	if ( dataUser.hasData( src ) ) {
+		udataOld = dataUser.access( src );
+		udataCur = jQuery.extend( {}, udataOld );
+
+		dataUser.set( dest, udataCur );
+	}
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+	var nodeName = dest.nodeName.toLowerCase();
+
+	// Fails to persist the checked state of a cloned checkbox or radio button.
+	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		dest.checked = src.checked;
+
+	// Fails to return the selected option to the default selected state when cloning options
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+	// Flatten any nested arrays
+	args = concat.apply( [], args );
+
+	var fragment, first, scripts, hasScripts, node, doc,
+		i = 0,
+		l = collection.length,
+		iNoClone = l - 1,
+		value = args[ 0 ],
+		valueIsFunction = isFunction( value );
+
+	// We can't cloneNode fragments that contain checked, in WebKit
+	if ( valueIsFunction ||
+			( l > 1 && typeof value === "string" &&
+				!support.checkClone && rchecked.test( value ) ) ) {
+		return collection.each( function( index ) {
+			var self = collection.eq( index );
+			if ( valueIsFunction ) {
+				args[ 0 ] = value.call( this, index, self.html() );
+			}
+			domManip( self, args, callback, ignored );
+		} );
+	}
+
+	if ( l ) {
+		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+		first = fragment.firstChild;
+
+		if ( fragment.childNodes.length === 1 ) {
+			fragment = first;
+		}
+
+		// Require either new content or an interest in ignored elements to invoke the callback
+		if ( first || ignored ) {
+			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+			hasScripts = scripts.length;
+
+			// Use the original fragment for the last item
+			// instead of the first because it can end up
+			// being emptied incorrectly in certain situations (#8070).
+			for ( ; i < l; i++ ) {
+				node = fragment;
+
+				if ( i !== iNoClone ) {
+					node = jQuery.clone( node, true, true );
+
+					// Keep references to cloned scripts for later restoration
+					if ( hasScripts ) {
+
+						// Support: Android <=4.0 only, PhantomJS 1 only
+						// push.apply(_, arraylike) throws on ancient WebKit
+						jQuery.merge( scripts, getAll( node, "script" ) );
+					}
+				}
+
+				callback.call( collection[ i ], node, i );
+			}
+
+			if ( hasScripts ) {
+				doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+				// Reenable scripts
+				jQuery.map( scripts, restoreScript );
+
+				// Evaluate executable scripts on first document insertion
+				for ( i = 0; i < hasScripts; i++ ) {
+					node = scripts[ i ];
+					if ( rscriptType.test( node.type || "" ) &&
+						!dataPriv.access( node, "globalEval" ) &&
+						jQuery.contains( doc, node ) ) {
+
+						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
+
+							// Optional AJAX dependency, but won't run scripts if not present
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
+							}
+						} else {
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return collection;
+}
+
+function remove( elem, selector, keepData ) {
+	var node,
+		nodes = selector ? jQuery.filter( selector, elem ) : elem,
+		i = 0;
+
+	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+		if ( !keepData && node.nodeType === 1 ) {
+			jQuery.cleanData( getAll( node ) );
+		}
+
+		if ( node.parentNode ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+				setGlobalEval( getAll( node, "script" ) );
+			}
+			node.parentNode.removeChild( node );
+		}
+	}
+
+	return elem;
+}
+
+jQuery.extend( {
+	htmlPrefilter: function( html ) {
+		return html.replace( rxhtmlTag, "<$1></$2>" );
+	},
+
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var i, l, srcElements, destElements,
+			clone = elem.cloneNode( true ),
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		// Fix IE cloning issues
+		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+				!jQuery.isXMLDoc( elem ) ) {
+
+			// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			for ( i = 0, l = srcElements.length; i < l; i++ ) {
+				fixInput( srcElements[ i ], destElements[ i ] );
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0, l = srcElements.length; i < l; i++ ) {
+					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		// Return the cloned set
+		return clone;
+	},
+
+	cleanData: function( elems ) {
+		var data, elem, type,
+			special = jQuery.event.special,
+			i = 0;
+
+		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+			if ( acceptData( elem ) ) {
+				if ( ( data = elem[ dataPriv.expando ] ) ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataPriv.expando ] = undefined;
+				}
+				if ( elem[ dataUser.expando ] ) {
+
+					// Support: Chrome <=35 - 45+
+					// Assign undefined instead of using delete, see Data#remove
+					elem[ dataUser.expando ] = undefined;
+				}
+			}
+		}
+	}
+} );
+
+jQuery.fn.extend( {
+	detach: function( selector ) {
+		return remove( this, selector, true );
+	},
+
+	remove: function( selector ) {
+		return remove( this, selector );
+	},
+
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().each( function() {
+					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+						this.textContent = value;
+					}
+				} );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		} );
+	},
+
+	prepend: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		} );
+	},
+
+	before: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		} );
+	},
+
+	after: function() {
+		return domManip( this, arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		} );
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; ( elem = this[ i ] ) != null; i++ ) {
+			if ( elem.nodeType === 1 ) {
+
+				// Prevent memory leaks
+				jQuery.cleanData( getAll( elem, false ) );
+
+				// Remove any remaining nodes
+				elem.textContent = "";
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		} );
+	},
+
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined && elem.nodeType === 1 ) {
+				return elem.innerHTML;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+				value = jQuery.htmlPrefilter( value );
+
+				try {
+					for ( ; i < l; i++ ) {
+						elem = this[ i ] || {};
+
+						// Remove element nodes and prevent memory leaks
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch ( e ) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var ignored = [];
+
+		// Make the changes, replacing each non-ignored context element with the new content
+		return domManip( this, arguments, function( elem ) {
+			var parent = this.parentNode;
+
+			if ( jQuery.inArray( this, ignored ) < 0 ) {
+				jQuery.cleanData( getAll( this ) );
+				if ( parent ) {
+					parent.replaceChild( elem, this );
+				}
+			}
+
+		// Force callback invocation
+		}, ignored );
+	}
+} );
+
+jQuery.each( {
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1,
+			i = 0;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone( true );
+			jQuery( insert[ i ] )[ original ]( elems );
+
+			// Support: Android <=4.0 only, PhantomJS 1 only
+			// .get() because push.apply(_, arraylike) throws on ancient WebKit
+			push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+} );
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+		// Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+		// IE throws on elements created in popups
+		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+		var view = elem.ownerDocument.defaultView;
+
+		if ( !view || !view.opener ) {
+			view = window;
+		}
+
+		return view.getComputedStyle( elem );
+	};
+
+var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
+
+
+
+( function() {
+
+	// Executing both pixelPosition & boxSizingReliable tests require only one layout
+	// so they're executed at the same time to save the second computation.
+	function computeStyleTests() {
+
+		// This is a singleton, we need to execute it only once
+		if ( !div ) {
+			return;
+		}
+
+		container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
+			"margin-top:1px;padding:0;border:0";
+		div.style.cssText =
+			"position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
+			"margin:auto;border:1px;padding:1px;" +
+			"width:60%;top:1%";
+		documentElement.appendChild( container ).appendChild( div );
+
+		var divStyle = window.getComputedStyle( div );
+		pixelPositionVal = divStyle.top !== "1%";
+
+		// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+		reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
+
+		// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
+		// Some styles come back with percentage values, even though they shouldn't
+		div.style.right = "60%";
+		pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
+
+		// Support: IE 9 - 11 only
+		// Detect misreporting of content dimensions for box-sizing:border-box elements
+		boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
+
+		// Support: IE 9 only
+		// Detect overflow:scroll screwiness (gh-3699)
+		div.style.position = "absolute";
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
+
+		documentElement.removeChild( container );
+
+		// Nullify the div so it wouldn't be stored in the memory and
+		// it will also be a sign that checks already performed
+		div = null;
+	}
+
+	function roundPixelMeasures( measure ) {
+		return Math.round( parseFloat( measure ) );
+	}
+
+	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
+		reliableMarginLeftVal,
+		container = document.createElement( "div" ),
+		div = document.createElement( "div" );
+
+	// Finish early in limited (non-browser) environments
+	if ( !div.style ) {
+		return;
+	}
+
+	// Support: IE <=9 - 11 only
+	// Style of cloned element affects source element cloned (#8908)
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	jQuery.extend( support, {
+		boxSizingReliable: function() {
+			computeStyleTests();
+			return boxSizingReliableVal;
+		},
+		pixelBoxStyles: function() {
+			computeStyleTests();
+			return pixelBoxStylesVal;
+		},
+		pixelPosition: function() {
+			computeStyleTests();
+			return pixelPositionVal;
+		},
+		reliableMarginLeft: function() {
+			computeStyleTests();
+			return reliableMarginLeftVal;
+		},
+		scrollboxSize: function() {
+			computeStyleTests();
+			return scrollboxSizeVal;
+		}
+	} );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+	var width, minWidth, maxWidth, ret,
+
+		// Support: Firefox 51+
+		// Retrieving style before computed somehow
+		// fixes an issue with getting wrong values
+		// on detached elements
+		style = elem.style;
+
+	computed = computed || getStyles( elem );
+
+	// getPropertyValue is needed for:
+	//   .css('filter') (IE 9 only, #12537)
+	//   .css('--customProperty) (#3144)
+	if ( computed ) {
+		ret = computed.getPropertyValue( name ) || computed[ name ];
+
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+			ret = jQuery.style( elem, name );
+		}
+
+		// A tribute to the "awesome hack by Dean Edwards"
+		// Android Browser returns percentage for some values,
+		// but width seems to be reliably pixels.
+		// This is against the CSSOM draft spec:
+		// https://drafts.csswg.org/cssom/#resolved-values
+		if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
+
+			// Remember the original values
+			width = style.width;
+			minWidth = style.minWidth;
+			maxWidth = style.maxWidth;
+
+			// Put in the new values to get a computed value out
+			style.minWidth = style.maxWidth = style.width = ret;
+			ret = computed.width;
+
+			// Revert the changed values
+			style.width = width;
+			style.minWidth = minWidth;
+			style.maxWidth = maxWidth;
+		}
+	}
+
+	return ret !== undefined ?
+
+		// Support: IE <=9 - 11 only
+		// IE returns zIndex value as an integer.
+		ret + "" :
+		ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			if ( conditionFn() ) {
+
+				// Hook not needed (or it's not possible to use it due
+				// to missing dependency), remove it.
+				delete this.get;
+				return;
+			}
+
+			// Hook needed; redefine it so that the support test is not executed again.
+			return ( this.get = hookFn ).apply( this, arguments );
+		}
+	};
+}
+
+
+var
+
+	// Swappable if display is none or starts with table
+	// except "table", "table-cell", or "table-caption"
+	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rcustomProp = /^--/,
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: "0",
+		fontWeight: "400"
+	},
+
+	cssPrefixes = [ "Webkit", "Moz", "ms" ],
+	emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+	// Shortcut for names that are not vendor prefixed
+	if ( name in emptyStyle ) {
+		return name;
+	}
+
+	// Check for vendor prefixed names
+	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in emptyStyle ) {
+			return name;
+		}
+	}
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+	}
+	return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+	// Any relative (+/-) values have already been
+	// normalized at this point
+	var matches = rcssNum.exec( value );
+	return matches ?
+
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+		value;
+}
+
+function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
+	var i = dimension === "width" ? 1 : 0,
+		extra = 0,
+		delta = 0;
+
+	// Adjustment may not be necessary
+	if ( box === ( isBorderBox ? "border" : "content" ) ) {
+		return 0;
+	}
+
+	for ( ; i < 4; i += 2 ) {
+
+		// Both box models exclude margin
+		if ( box === "margin" ) {
+			delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
+		}
+
+		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
+		if ( !isBorderBox ) {
+
+			// Add padding
+			delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// For "border" or "margin", add border
+			if ( box !== "padding" ) {
+				delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+
+			// But still keep track of it otherwise
+			} else {
+				extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+
+		// If we get here with a border-box (content + padding + border), we're seeking "content" or
+		// "padding" or "margin"
+		} else {
+
+			// For "content", subtract padding
+			if ( box === "content" ) {
+				delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// For "content" or "padding", subtract border
+			if ( box !== "margin" ) {
+				delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	// Account for positive content-box scroll gutter when requested by providing computedVal
+	if ( !isBorderBox && computedVal >= 0 ) {
+
+		// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
+		// Assuming integer scroll gutter, subtract the rest and round down
+		delta += Math.max( 0, Math.ceil(
+			elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+			computedVal -
+			delta -
+			extra -
+			0.5
+		) );
+	}
+
+	return delta;
+}
+
+function getWidthOrHeight( elem, dimension, extra ) {
+
+	// Start with computed style
+	var styles = getStyles( elem ),
+		val = curCSS( elem, dimension, styles ),
+		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+		valueIsBorderBox = isBorderBox;
+
+	// Support: Firefox <=54
+	// Return a confounding non-pixel value or feign ignorance, as appropriate.
+	if ( rnumnonpx.test( val ) ) {
+		if ( !extra ) {
+			return val;
+		}
+		val = "auto";
+	}
+
+	// Check for style in case a browser which returns unreliable values
+	// for getComputedStyle silently falls back to the reliable elem.style
+	valueIsBorderBox = valueIsBorderBox &&
+		( support.boxSizingReliable() || val === elem.style[ dimension ] );
+
+	// Fall back to offsetWidth/offsetHeight when value is "auto"
+	// This happens for inline elements with no explicit setting (gh-3571)
+	// Support: Android <=4.1 - 4.3 only
+	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
+	if ( val === "auto" ||
+		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
+
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
+
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
+	}
+
+	// Normalize "" and auto
+	val = parseFloat( val ) || 0;
+
+	// Adjust for the element's box model
+	return ( val +
+		boxModelAdjustment(
+			elem,
+			dimension,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles,
+
+			// Provide the current computed size to request scroll gutter calculation (gh-3589)
+			val
+		)
+	) + "px";
+}
+
+jQuery.extend( {
+
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"animationIterationCount": true,
+		"columnCount": true,
+		"fillOpacity": true,
+		"flexGrow": true,
+		"flexShrink": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name ),
+			style = elem.style;
+
+		// Make sure that we're working with the right name. We don't
+		// want to query the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Gets hook for the prefixed version, then unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// Convert "+=" or "-=" to relative numbers (#7345)
+			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+				value = adjustCSS( elem, name, ret );
+
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that null and NaN values aren't set (#7116)
+			if ( value == null || value !== value ) {
+				return;
+			}
+
+			// If a number was passed in, add the unit (except for certain CSS properties)
+			if ( type === "number" ) {
+				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+			}
+
+			// background-* props affect original clone's values
+			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !( "set" in hooks ) ||
+				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+				if ( isCustomProp ) {
+					style.setProperty( name, value );
+				} else {
+					style[ name ] = value;
+				}
+			}
+
+		} else {
+
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks &&
+				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var val, num, hooks,
+			origName = camelCase( name ),
+			isCustomProp = rcustomProp.test( name );
+
+		// Make sure that we're working with the right name. We don't
+		// want to modify the value if it is a CSS custom property
+		// since they are user-defined.
+		if ( !isCustomProp ) {
+			name = finalPropName( origName );
+		}
+
+		// Try prefixed name followed by the unprefixed name
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		// Convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Make numeric if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || isFinite( num ) ? num || 0 : val;
+		}
+
+		return val;
+	}
+} );
+
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
+	jQuery.cssHooks[ dimension ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+
+				// Certain elements can have dimension info if we invisibly show them
+				// but it must have a current display style that would benefit
+				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+					// Support: Safari 8+
+					// Table columns in Safari have non-zero offsetWidth & zero
+					// getBoundingClientRect().width unless display is changed.
+					// Support: IE <=11 only
+					// Running getBoundingClientRect on a disconnected node
+					// in IE throws an error.
+					( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+						swap( elem, cssShow, function() {
+							return getWidthOrHeight( elem, dimension, extra );
+						} ) :
+						getWidthOrHeight( elem, dimension, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var matches,
+				styles = getStyles( elem ),
+				isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+				subtract = extra && boxModelAdjustment(
+					elem,
+					dimension,
+					extra,
+					isBorderBox,
+					styles
+				);
+
+			// Account for unreliable border-box dimensions by comparing offset* to computed and
+			// faking a content-box to get border and padding (gh-3699)
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
+				subtract -= Math.ceil(
+					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
+					parseFloat( styles[ dimension ] ) -
+					boxModelAdjustment( elem, dimension, "border", false, styles ) -
+					0.5
+				);
+			}
+
+			// Convert to pixels if value adjustment is needed
+			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+				( matches[ 3 ] || "px" ) !== "px" ) {
+
+				elem.style[ dimension ] = value;
+				value = jQuery.css( elem, dimension );
+			}
+
+			return setPositiveNumber( elem, value, subtract );
+		}
+	};
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+	function( elem, computed ) {
+		if ( computed ) {
+			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+				elem.getBoundingClientRect().left -
+					swap( elem, { marginLeft: 0 }, function() {
+						return elem.getBoundingClientRect().left;
+					} )
+				) + "px";
+		}
+	}
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// Assumes a single number if not a string
+				parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( prefix !== "margin" ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+} );
+
+jQuery.fn.extend( {
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
+
+			if ( Array.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	}
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || jQuery.easing._default;
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			// Use a property on the element directly when it is not a DOM element,
+			// or when there is no matching style property that exists.
+			if ( tween.elem.nodeType !== 1 ||
+				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// Passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails.
+			// Simple values such as "10px" are parsed to Float;
+			// complex values such as "rotate(1rad)" are returned as-is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+
+			// Use step hook for back compat.
+			// Use cssHook if its there.
+			// Use .style if available and use plain properties where available.
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.nodeType === 1 &&
+				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+					jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	},
+	_default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+	fxNow, inProgress,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rrun = /queueHooks$/;
+
+function schedule() {
+	if ( inProgress ) {
+		if ( document.hidden === false && window.requestAnimationFrame ) {
+			window.requestAnimationFrame( schedule );
+		} else {
+			window.setTimeout( schedule, jQuery.fx.interval );
+		}
+
+		jQuery.fx.tick();
+	}
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	window.setTimeout( function() {
+		fxNow = undefined;
+	} );
+	return ( fxNow = Date.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		i = 0,
+		attrs = { height: type };
+
+	// If we include width, step value is 1 to do all cssExpand values,
+	// otherwise step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+			// We're done with this property
+			return tween;
+		}
+	}
+}
+
+function defaultPrefilter( elem, props, opts ) {
+	var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+		isBox = "width" in props || "height" in props,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHiddenWithinTree( elem ),
+		dataShow = dataPriv.get( elem, "fxshow" );
+
+	// Queue-skipping animations hijack the fx hooks
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always( function() {
+
+			// Ensure the complete handler is called before this completes
+			anim.always( function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			} );
+		} );
+	}
+
+	// Detect show/hide animations
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.test( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+
+				// Pretend to be hidden if this is a "show" and
+				// there is still data from a stopped show/hide
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+
+				// Ignore all other no-op show/hide data
+				} else {
+					continue;
+				}
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	// Bail out if this is a no-op like .hide().hide()
+	propTween = !jQuery.isEmptyObject( props );
+	if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+		return;
+	}
+
+	// Restrict "overflow" and "display" styles during box animations
+	if ( isBox && elem.nodeType === 1 ) {
+
+		// Support: IE <=9 - 11, Edge 12 - 15
+		// Record all 3 overflow attributes because IE does not infer the shorthand
+		// from identically-valued overflowX and overflowY and Edge just mirrors
+		// the overflowX value there.
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Identify a display type, preferring old show/hide data over the CSS cascade
+		restoreDisplay = dataShow && dataShow.display;
+		if ( restoreDisplay == null ) {
+			restoreDisplay = dataPriv.get( elem, "display" );
+		}
+		display = jQuery.css( elem, "display" );
+		if ( display === "none" ) {
+			if ( restoreDisplay ) {
+				display = restoreDisplay;
+			} else {
+
+				// Get nonempty value(s) by temporarily forcing visibility
+				showHide( [ elem ], true );
+				restoreDisplay = elem.style.display || restoreDisplay;
+				display = jQuery.css( elem, "display" );
+				showHide( [ elem ] );
+			}
+		}
+
+		// Animate inline elements as inline-block
+		if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+			if ( jQuery.css( elem, "float" ) === "none" ) {
+
+				// Restore the original display value at the end of pure show/hide animations
+				if ( !propTween ) {
+					anim.done( function() {
+						style.display = restoreDisplay;
+					} );
+					if ( restoreDisplay == null ) {
+						display = style.display;
+						restoreDisplay = display === "none" ? "" : display;
+					}
+				}
+				style.display = "inline-block";
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		anim.always( function() {
+			style.overflow = opts.overflow[ 0 ];
+			style.overflowX = opts.overflow[ 1 ];
+			style.overflowY = opts.overflow[ 2 ];
+		} );
+	}
+
+	// Implement show/hide animations
+	propTween = false;
+	for ( prop in orig ) {
+
+		// General show/hide setup for this element animation
+		if ( !propTween ) {
+			if ( dataShow ) {
+				if ( "hidden" in dataShow ) {
+					hidden = dataShow.hidden;
+				}
+			} else {
+				dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+			}
+
+			// Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+			if ( toggle ) {
+				dataShow.hidden = !hidden;
+			}
+
+			// Show elements before animating them
+			if ( hidden ) {
+				showHide( [ elem ], true );
+			}
+
+			/* eslint-disable no-loop-func */
+
+			anim.done( function() {
+
+			/* eslint-enable no-loop-func */
+
+				// The final step of a "hide" animation is actually hiding the element
+				if ( !hidden ) {
+					showHide( [ elem ] );
+				}
+				dataPriv.remove( elem, "fxshow" );
+				for ( prop in orig ) {
+					jQuery.style( elem, prop, orig[ prop ] );
+				}
+			} );
+		}
+
+		// Per-property setup
+		propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+		if ( !( prop in dataShow ) ) {
+			dataShow[ prop ] = propTween.start;
+			if ( hidden ) {
+				propTween.end = propTween.start;
+				propTween.start = 0;
+			}
+		}
+	}
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( Array.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// Not quite $.extend, this won't overwrite existing keys.
+			// Reusing 'index' because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = Animation.prefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+
+			// Don't match elem in the :animated selector
+			delete tick.elem;
+		} ),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+				// Support: Android 2.3 only
+				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+			// If there's more to do, yield
+			if ( percent < 1 && length ) {
+				return remaining;
+			}
+
+			// If this was an empty animation, synthesize a final progress notification
+			if ( !length ) {
+				deferred.notifyWith( elem, [ animation, 1, 0 ] );
+			}
+
+			// Resolve the animation and report its conclusion
+			deferred.resolveWith( elem, [ animation ] );
+			return false;
+		},
+		animation = deferred.promise( {
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, {
+				specialEasing: {},
+				easing: jQuery.easing._default
+			}, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+
+					// If we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// Resolve when we played the last frame; otherwise, reject
+				if ( gotoEnd ) {
+					deferred.notifyWith( elem, [ animation, 1, 0 ] );
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		} ),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length; index++ ) {
+		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			if ( isFunction( result.stop ) ) {
+				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+					result.stop.bind( result );
+			}
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	// Attach callbacks from options
+	animation
+		.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		} )
+	);
+
+	return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweeners: {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value );
+			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+			return tween;
+		} ]
+	},
+
+	tweener: function( props, callback ) {
+		if ( isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.match( rnothtmlwhite );
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length; index++ ) {
+			prop = props[ index ];
+			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+			Animation.tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilters: [ defaultPrefilter ],
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			Animation.prefilters.unshift( callback );
+		} else {
+			Animation.prefilters.push( callback );
+		}
+	}
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !isFunction( easing ) && easing
+	};
+
+	// Go to the end state if fx are off
+	if ( jQuery.fx.off ) {
+		opt.duration = 0;
+
+	} else {
+		if ( typeof opt.duration !== "number" ) {
+			if ( opt.duration in jQuery.fx.speeds ) {
+				opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+			} else {
+				opt.duration = jQuery.fx.speeds._default;
+			}
+		}
+	}
+
+	// Normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.fn.extend( {
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// Show any hidden elements after setting opacity to 0
+		return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+			// Animate to the value specified
+			.end().animate( { opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || dataPriv.get( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each( function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = dataPriv.get( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this &&
+					( type == null || timers[ index ].queue === type ) ) {
+
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Start the next in the queue if the last step wasn't forced.
+			// Timers currently will call their complete callbacks, which
+			// will dequeue but only if they were gotoEnd.
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		} );
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each( function() {
+			var index,
+				data = dataPriv.get( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// Enable finishing flag on private data
+			data.finish = true;
+
+			// Empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// Look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// Look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// Turn off finishing flag
+			delete data.finish;
+		} );
+	}
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+	slideDown: genFx( "show" ),
+	slideUp: genFx( "hide" ),
+	slideToggle: genFx( "toggle" ),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		i = 0,
+		timers = jQuery.timers;
+
+	fxNow = Date.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+
+		// Run the timer and safely remove it when done (allowing for external removal)
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+	if ( inProgress ) {
+		return;
+	}
+
+	inProgress = true;
+	schedule();
+};
+
+jQuery.fx.stop = function() {
+	inProgress = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+
+	// Default speed
+	_default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
+
+	return this.queue( type, function( next, hooks ) {
+		var timeout = window.setTimeout( next, time );
+		hooks.stop = function() {
+			window.clearTimeout( timeout );
+		};
+	} );
+};
+
+
+( function() {
+	var input = document.createElement( "input" ),
+		select = document.createElement( "select" ),
+		opt = select.appendChild( document.createElement( "option" ) );
+
+	input.type = "checkbox";
+
+	// Support: Android <=4.3 only
+	// Default value for a checkbox should be "on"
+	support.checkOn = input.value !== "";
+
+	// Support: IE <=11 only
+	// Must access selectedIndex to make default options select
+	support.optSelected = opt.selected;
+
+	// Support: IE <=11 only
+	// An input loses its value after becoming a radio
+	input = document.createElement( "input" );
+	input.value = "t";
+	input.type = "radio";
+	support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+	attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each( function() {
+			jQuery.removeAttr( this, name );
+		} );
+	}
+} );
+
+jQuery.extend( {
+	attr: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set attributes on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === "undefined" ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// Attribute hooks are determined by the lowercase version
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+		}
+
+		if ( value !== undefined ) {
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+				return;
+			}
+
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			elem.setAttribute( name, value + "" );
+			return value;
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		ret = jQuery.find.attr( elem, name );
+
+		// Non-existent attributes return null, we normalize to undefined
+		return ret == null ? undefined : ret;
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" &&
+					nodeName( elem, "input" ) ) {
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name,
+			i = 0,
+
+			// Attribute names can contain non-HTML whitespace characters
+			// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+			attrNames = value && value.match( rnothtmlwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( ( name = attrNames[ i++ ] ) ) {
+				elem.removeAttribute( name );
+			}
+		}
+	}
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else {
+			elem.setAttribute( name, name );
+		}
+		return name;
+	}
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = attrHandle[ name ] || jQuery.find.attr;
+
+	attrHandle[ name ] = function( elem, name, isXML ) {
+		var ret, handle,
+			lowercaseName = name.toLowerCase();
+
+		if ( !isXML ) {
+
+			// Avoid an infinite loop by temporarily removing this function from the getter
+			handle = attrHandle[ lowercaseName ];
+			attrHandle[ lowercaseName ] = ret;
+			ret = getter( elem, name, isXML ) != null ?
+				lowercaseName :
+				null;
+			attrHandle[ lowercaseName ] = handle;
+		}
+		return ret;
+	};
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+	rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		return this.each( function() {
+			delete this[ jQuery.propFix[ name ] || name ];
+		} );
+	}
+} );
+
+jQuery.extend( {
+	prop: function( elem, name, value ) {
+		var ret, hooks,
+			nType = elem.nodeType;
+
+		// Don't get/set properties on text, comment and attribute nodes
+		if ( nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			if ( hooks && "set" in hooks &&
+				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+				return ret;
+			}
+
+			return ( elem[ name ] = value );
+		}
+
+		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+			return ret;
+		}
+
+		return elem[ name ];
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+
+				// Support: IE <=9 - 11 only
+				// elem.tabIndex doesn't always return the
+				// correct value when it hasn't been explicitly set
+				// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				if ( tabindex ) {
+					return parseInt( tabindex, 10 );
+				}
+
+				if (
+					rfocusable.test( elem.nodeName ) ||
+					rclickable.test( elem.nodeName ) &&
+					elem.href
+				) {
+					return 0;
+				}
+
+				return -1;
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	}
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent && parent.parentNode ) {
+				parent.parentNode.selectedIndex;
+			}
+			return null;
+		},
+		set: function( elem ) {
+
+			/* eslint no-unused-expressions: "off" */
+
+			var parent = elem.parentNode;
+			if ( parent ) {
+				parent.selectedIndex;
+
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+		}
+	};
+}
+
+jQuery.each( [
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+	// Strip and collapse whitespace according to HTML spec
+	// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
+	function stripAndCollapse( value ) {
+		var tokens = value.match( rnothtmlwhite ) || [];
+		return tokens.join( " " );
+	}
+
+
+function getClass( elem ) {
+	return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+function classesToArray( value ) {
+	if ( Array.isArray( value ) ) {
+		return value;
+	}
+	if ( typeof value === "string" ) {
+		return value.match( rnothtmlwhite ) || [];
+	}
+	return [];
+}
+
+jQuery.fn.extend( {
+	addClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, curValue, clazz, j, finalValue,
+			i = 0;
+
+		if ( isFunction( value ) ) {
+			return this.each( function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+			} );
+		}
+
+		if ( !arguments.length ) {
+			return this.attr( "class", "" );
+		}
+
+		classes = classesToArray( value );
+
+		if ( classes.length ) {
+			while ( ( elem = this[ i++ ] ) ) {
+				curValue = getClass( elem );
+
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+				if ( cur ) {
+					j = 0;
+					while ( ( clazz = classes[ j++ ] ) ) {
+
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+
+					// Only assign if different to avoid unneeded rendering.
+					finalValue = stripAndCollapse( cur );
+					if ( curValue !== finalValue ) {
+						elem.setAttribute( "class", finalValue );
+					}
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value,
+			isValidValue = type === "string" || Array.isArray( value );
+
+		if ( typeof stateVal === "boolean" && isValidValue ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( isFunction( value ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).toggleClass(
+					value.call( this, i, getClass( this ), stateVal ),
+					stateVal
+				);
+			} );
+		}
+
+		return this.each( function() {
+			var className, i, self, classNames;
+
+			if ( isValidValue ) {
+
+				// Toggle individual class names
+				i = 0;
+				self = jQuery( this );
+				classNames = classesToArray( value );
+
+				while ( ( className = classNames[ i++ ] ) ) {
+
+					// Check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( value === undefined || type === "boolean" ) {
+				className = getClass( this );
+				if ( className ) {
+
+					// Store className if set
+					dataPriv.set( this, "__className__", className );
+				}
+
+				// If the element has a class name or if we're passed `false`,
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				if ( this.setAttribute ) {
+					this.setAttribute( "class",
+						className || value === false ?
+						"" :
+						dataPriv.get( this, "__className__" ) || ""
+					);
+				}
+			}
+		} );
+	},
+
+	hasClass: function( selector ) {
+		var className, elem,
+			i = 0;
+
+		className = " " + selector + " ";
+		while ( ( elem = this[ i++ ] ) ) {
+			if ( elem.nodeType === 1 &&
+				( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+					return true;
+			}
+		}
+
+		return false;
+	}
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+	val: function( value ) {
+		var hooks, ret, valueIsFunction,
+			elem = this[ 0 ];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] ||
+					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks &&
+					"get" in hooks &&
+					( ret = hooks.get( elem, "value" ) ) !== undefined
+				) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				// Handle most common string cases
+				if ( typeof ret === "string" ) {
+					return ret.replace( rreturn, "" );
+				}
+
+				// Handle cases where value is null/undef or number
+				return ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		valueIsFunction = isFunction( value );
+
+		return this.each( function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( valueIsFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+
+			} else if ( typeof val === "number" ) {
+				val += "";
+
+			} else if ( Array.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				} );
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		} );
+	}
+} );
+
+jQuery.extend( {
+	valHooks: {
+		option: {
+			get: function( elem ) {
+
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+
+					// Support: IE <=10 - 11 only
+					// option.text throws exceptions (#14686, #14858)
+					// Strip and collapse whitespace
+					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+					stripAndCollapse( jQuery.text( elem ) );
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option, i,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one",
+					values = one ? null : [],
+					max = one ? index + 1 : options.length;
+
+				if ( index < 0 ) {
+					i = max;
+
+				} else {
+					i = one ? index : 0;
+				}
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// Support: IE <=9 only
+					// IE8-9 doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+
+							// Don't return options that are disabled or in a disabled optgroup
+							!option.disabled &&
+							( !option.parentNode.disabled ||
+								!nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+
+					/* eslint-disable no-cond-assign */
+
+					if ( option.selected =
+						jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+					) {
+						optionSet = true;
+					}
+
+					/* eslint-enable no-cond-assign */
+				}
+
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	}
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( Array.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+			}
+		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+		};
+	}
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+support.focusin = "onfocusin" in window;
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	stopPropagationCallback = function( e ) {
+		e.stopPropagation();
+	};
+
+jQuery.extend( jQuery.event, {
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+
+		var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+		cur = lastElement = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf( "." ) > -1 ) {
+
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split( "." );
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join( "." );
+		event.rnamespace = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === ( elem.ownerDocument || document ) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+			lastElement = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+				dataPriv.get( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( ( !special._default ||
+				special._default.apply( eventPath.pop(), data ) === false ) &&
+				acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name as the event.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.addEventListener( type, stopPropagationCallback );
+					}
+
+					elem[ type ]();
+
+					if ( event.isPropagationStopped() ) {
+						lastElement.removeEventListener( type, stopPropagationCallback );
+					}
+
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	// Piggyback on a donor event to simulate a different one
+	// Used only for `focus(in | out)` events
+	simulate: function( type, elem, event ) {
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true
+			}
+		);
+
+		jQuery.event.trigger( e, null, elem );
+	}
+
+} );
+
+jQuery.fn.extend( {
+
+	trigger: function( type, data ) {
+		return this.each( function() {
+			jQuery.event.trigger( type, data, this );
+		} );
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[ 0 ];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+} );
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+		};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
+				}
+				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+			},
+			teardown: function() {
+				var doc = this.ownerDocument || this,
+					attaches = dataPriv.access( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					dataPriv.remove( doc, fix );
+
+				} else {
+					dataPriv.access( doc, fix, attaches );
+				}
+			}
+		};
+	} );
+}
+var location = window.location;
+
+var nonce = Date.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE throws on parseFromString with invalid input.
+	try {
+		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+	} catch ( e ) {
+		xml = undefined;
+	}
+
+	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
+
+
+var
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( Array.isArray( obj ) ) {
+
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams(
+					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+					v,
+					traditional,
+					add
+				);
+			}
+		} );
+
+	} else if ( !traditional && toType( obj ) === "object" ) {
+
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, valueOrFunction ) {
+
+			// If value is a function, invoke it and use its return value
+			var value = isFunction( valueOrFunction ) ?
+				valueOrFunction() :
+				valueOrFunction;
+
+			s[ s.length ] = encodeURIComponent( key ) + "=" +
+				encodeURIComponent( value == null ? "" : value );
+		};
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		} );
+
+	} else {
+
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map( function() {
+
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		} )
+		.filter( function() {
+			var type = this.type;
+
+			// Use .is( ":disabled" ) so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !rcheckableType.test( type ) );
+		} )
+		.map( function( i, elem ) {
+			var val = jQuery( this ).val();
+
+			if ( val == null ) {
+				return null;
+			}
+
+			if ( Array.isArray( val ) ) {
+				return jQuery.map( val, function( val ) {
+					return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+				} );
+			}
+
+			return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		} ).get();
+	}
+} );
+
+
+var
+	r20 = /%20/g,
+	rhash = /#.*$/,
+	rantiCache = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat( "*" ),
+
+	// Anchor tag for parsing the document origin
+	originAnchor = document.createElement( "a" );
+	originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+		if ( isFunction( func ) ) {
+
+			// For each dataType in the dataTypeExpression
+			while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+				// Prepend if requested
+				if ( dataType[ 0 ] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+				// Otherwise append
+				} else {
+					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" &&
+				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		} );
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var key, deep,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+	var ct, type, finalDataType, firstDataType,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s.throws ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return {
+								state: "parsererror",
+								error: conv ? e : "No conversion from " + prev + " to " + current
+							};
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: location.href,
+		type: "GET",
+		isLocal: rlocalProtocol.test( location.protocol ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /\bxml\b/,
+			html: /\bhtml/,
+			json: /\bjson\b/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": JSON.parse,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var transport,
+
+			// URL without anti-cache param
+			cacheURL,
+
+			// Response headers
+			responseHeadersString,
+			responseHeaders,
+
+			// timeout handle
+			timeoutTimer,
+
+			// Url cleanup var
+			urlAnchor,
+
+			// Request state (becomes false upon send and true upon completion)
+			completed,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			// Loop variable
+			i,
+
+			// uncached part of the url
+			uncached,
+
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+
+			// Callbacks context
+			callbackContext = s.context || s,
+
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context &&
+				( callbackContext.nodeType || callbackContext.jquery ) ?
+					jQuery( callbackContext ) :
+					jQuery.event,
+
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks( "once memory" ),
+
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+
+			// Default abort message
+			strAbort = "canceled",
+
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( completed ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return completed ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					if ( completed == null ) {
+						name = requestHeadersNames[ name.toLowerCase() ] =
+							requestHeadersNames[ name.toLowerCase() ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( completed == null ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( completed ) {
+
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						} else {
+
+							// Lazy-add the new callbacks in a way that preserves old ones
+							for ( code in map ) {
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR );
+
+		// Add protocol if not provided (prefilters might expect it)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || location.href ) + "" )
+			.replace( rprotocol, location.protocol + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+		// A cross-domain request is in order when the origin doesn't match the current origin.
+		if ( s.crossDomain == null ) {
+			urlAnchor = document.createElement( "a" );
+
+			// Support: IE <=8 - 11, Edge 12 - 15
+			// IE throws exception on accessing the href property if url is malformed,
+			// e.g. http://example.com:80x/
+			try {
+				urlAnchor.href = s.url;
+
+				// Support: IE <=8 - 11 only
+				// Anchor's host property isn't correctly set when s.url is relative
+				urlAnchor.href = urlAnchor.href;
+				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+					urlAnchor.protocol + "//" + urlAnchor.host;
+			} catch ( e ) {
+
+				// If there is an error parsing the URL, assume it is crossDomain,
+				// it can be rejected by the transport if it is invalid
+				s.crossDomain = true;
+			}
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( completed ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+		fireGlobals = jQuery.event && s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger( "ajaxStart" );
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		// Remove hash to simplify url manipulation
+		cacheURL = s.url.replace( rhash, "" );
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// Remember the hash so we can put it back
+			uncached = s.url.slice( cacheURL.length );
+
+			// If data is available and should be processed, append data to url
+			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
+				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add or update anti-cache param if needed
+			if ( s.cache === false ) {
+				cacheURL = cacheURL.replace( rantiCache, "$1" );
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+			}
+
+			// Put hash and anti-cache on the URL that will be requested (gh-1732)
+			s.url = cacheURL + uncached;
+
+		// Change '%20' to '+' if this is encoded form body content (gh-2658)
+		} else if ( s.data && s.processData &&
+			( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+			s.data = s.data.replace( r20, "+" );
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+				s.accepts[ s.dataTypes[ 0 ] ] +
+					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend &&
+			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// Aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		completeDeferred.add( s.complete );
+		jqXHR.done( s.success );
+		jqXHR.fail( s.error );
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+
+			// If request was aborted inside ajaxSend, stop there
+			if ( completed ) {
+				return jqXHR;
+			}
+
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = window.setTimeout( function() {
+					jqXHR.abort( "timeout" );
+				}, s.timeout );
+			}
+
+			try {
+				completed = false;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+
+				// Rethrow post-completion exceptions
+				if ( completed ) {
+					throw e;
+				}
+
+				// Propagate others as results
+				done( -1, e );
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Ignore repeat invocations
+			if ( completed ) {
+				return;
+			}
+
+			completed = true;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				window.clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader( "Last-Modified" );
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader( "etag" );
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+
+				// Extract error from statusText and normalize for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger( "ajaxStop" );
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+
+		// Shift arguments if data argument was omitted
+		if ( isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		// The url can be an options object (which then must have .url)
+		return jQuery.ajax( jQuery.extend( {
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		}, jQuery.isPlainObject( url ) && url ) );
+	};
+} );
+
+
+jQuery._evalUrl = function( url ) {
+	return jQuery.ajax( {
+		url: url,
+
+		// Make this explicit, since user can override this through ajaxSetup (#11264)
+		type: "GET",
+		dataType: "script",
+		cache: true,
+		async: false,
+		global: false,
+		"throws": true
+	} );
+};
+
+
+jQuery.fn.extend( {
+	wrapAll: function( html ) {
+		var wrap;
+
+		if ( this[ 0 ] ) {
+			if ( isFunction( html ) ) {
+				html = html.call( this[ 0 ] );
+			}
+
+			// The elements to wrap the target around
+			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+			if ( this[ 0 ].parentNode ) {
+				wrap.insertBefore( this[ 0 ] );
+			}
+
+			wrap.map( function() {
+				var elem = this;
+
+				while ( elem.firstElementChild ) {
+					elem = elem.firstElementChild;
+				}
+
+				return elem;
+			} ).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( isFunction( html ) ) {
+			return this.each( function( i ) {
+				jQuery( this ).wrapInner( html.call( this, i ) );
+			} );
+		}
+
+		return this.each( function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		} );
+	},
+
+	wrap: function( html ) {
+		var htmlIsFunction = isFunction( html );
+
+		return this.each( function( i ) {
+			jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
+		} );
+	},
+
+	unwrap: function( selector ) {
+		this.parent( selector ).not( "body" ).each( function() {
+			jQuery( this ).replaceWith( this.childNodes );
+		} );
+		return this;
+	}
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+	return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+	return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+		// File protocol always yields status code 0, assume 200
+		0: 200,
+
+		// Support: IE <=9 only
+		// #1450: sometimes IE returns 1223 when it should be 204
+		1223: 204
+	},
+	xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+	var callback, errorCallback;
+
+	// Cross domain only allowed if supported through XMLHttpRequest
+	if ( support.cors || xhrSupported && !options.crossDomain ) {
+		return {
+			send: function( headers, complete ) {
+				var i,
+					xhr = options.xhr();
+
+				xhr.open(
+					options.type,
+					options.url,
+					options.async,
+					options.username,
+					options.password
+				);
+
+				// Apply custom fields if provided
+				if ( options.xhrFields ) {
+					for ( i in options.xhrFields ) {
+						xhr[ i ] = options.xhrFields[ i ];
+					}
+				}
+
+				// Override mime type if needed
+				if ( options.mimeType && xhr.overrideMimeType ) {
+					xhr.overrideMimeType( options.mimeType );
+				}
+
+				// X-Requested-With header
+				// For cross-domain requests, seeing as conditions for a preflight are
+				// akin to a jigsaw puzzle, we simply never set it to be sure.
+				// (it can always be set on a per-request basis or even using ajaxSetup)
+				// For same-domain requests, won't change header if already provided.
+				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+					headers[ "X-Requested-With" ] = "XMLHttpRequest";
+				}
+
+				// Set headers
+				for ( i in headers ) {
+					xhr.setRequestHeader( i, headers[ i ] );
+				}
+
+				// Callback
+				callback = function( type ) {
+					return function() {
+						if ( callback ) {
+							callback = errorCallback = xhr.onload =
+								xhr.onerror = xhr.onabort = xhr.ontimeout =
+									xhr.onreadystatechange = null;
+
+							if ( type === "abort" ) {
+								xhr.abort();
+							} else if ( type === "error" ) {
+
+								// Support: IE <=9 only
+								// On a manual native abort, IE9 throws
+								// errors on any property access that is not readyState
+								if ( typeof xhr.status !== "number" ) {
+									complete( 0, "error" );
+								} else {
+									complete(
+
+										// File: protocol always yields status 0; see #8605, #14207
+										xhr.status,
+										xhr.statusText
+									);
+								}
+							} else {
+								complete(
+									xhrSuccessStatus[ xhr.status ] || xhr.status,
+									xhr.statusText,
+
+									// Support: IE <=9 only
+									// IE9 has no XHR2 but throws on binary (trac-11426)
+									// For XHR2 non-text, let the caller handle it (gh-2498)
+									( xhr.responseType || "text" ) !== "text"  ||
+									typeof xhr.responseText !== "string" ?
+										{ binary: xhr.response } :
+										{ text: xhr.responseText },
+									xhr.getAllResponseHeaders()
+								);
+							}
+						}
+					};
+				};
+
+				// Listen to events
+				xhr.onload = callback();
+				errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" );
+
+				// Support: IE 9 only
+				// Use onreadystatechange to replace onabort
+				// to handle uncaught aborts
+				if ( xhr.onabort !== undefined ) {
+					xhr.onabort = errorCallback;
+				} else {
+					xhr.onreadystatechange = function() {
+
+						// Check readyState before timeout as it changes
+						if ( xhr.readyState === 4 ) {
+
+							// Allow onerror to be called first,
+							// but that will not handle a native abort
+							// Also, save errorCallback to a variable
+							// as xhr.onerror cannot be accessed
+							window.setTimeout( function() {
+								if ( callback ) {
+									errorCallback();
+								}
+							} );
+						}
+					};
+				}
+
+				// Create the abort callback
+				callback = callback( "abort" );
+
+				try {
+
+					// Do send the request (this may raise an exception)
+					xhr.send( options.hasContent && options.data || null );
+				} catch ( e ) {
+
+					// #14683: Only rethrow if this hasn't been notified as an error yet
+					if ( callback ) {
+						throw e;
+					}
+				}
+			},
+
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+	if ( s.crossDomain ) {
+		s.contents.script = false;
+	}
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+	accepts: {
+		script: "text/javascript, application/javascript, " +
+			"application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /\b(?:java|ecma)script\b/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+	}
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+		var script, callback;
+		return {
+			send: function( _, complete ) {
+				script = jQuery( "<script>" ).prop( {
+					charset: s.scriptCharset,
+					src: s.url
+				} ).on(
+					"load error",
+					callback = function( evt ) {
+						script.remove();
+						callback = null;
+						if ( evt ) {
+							complete( evt.type === "error" ? 404 : 200, evt.type );
+						}
+					}
+				);
+
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				document.head.appendChild( script[ 0 ] );
+			},
+			abort: function() {
+				if ( callback ) {
+					callback();
+				}
+			}
+		};
+	}
+} );
+
+
+
+
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" &&
+				( s.contentType || "" )
+					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+				rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters[ "script json" ] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// Force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always( function() {
+
+			// If previous value didn't exist - remove it
+			if ( overwritten === undefined ) {
+				jQuery( window ).removeProp( callbackName );
+
+			// Otherwise restore preexisting value
+			} else {
+				window[ callbackName ] = overwritten;
+			}
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+
+				// Make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// Save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		} );
+
+		// Delegate to script
+		return "script";
+	}
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+	var body = document.implementation.createHTMLDocument( "" ).body;
+	body.innerHTML = "<form></form><form></form>";
+	return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+	if ( typeof data !== "string" ) {
+		return [];
+	}
+	if ( typeof context === "boolean" ) {
+		keepScripts = context;
+		context = false;
+	}
+
+	var base, parsed, scripts;
+
+	if ( !context ) {
+
+		// Stop scripts or inline event handlers from being executed immediately
+		// by using document.implementation
+		if ( support.createHTMLDocument ) {
+			context = document.implementation.createHTMLDocument( "" );
+
+			// Set the base href for the created document
+			// so any parsed elements with URLs
+			// are based on the document's URL (gh-2965)
+			base = context.createElement( "base" );
+			base.href = document.location.href;
+			context.head.appendChild( base );
+		} else {
+			context = document;
+		}
+	}
+
+	parsed = rsingleTag.exec( data );
+	scripts = !keepScripts && [];
+
+	// Single tag
+	if ( parsed ) {
+		return [ context.createElement( parsed[ 1 ] ) ];
+	}
+
+	parsed = buildFragment( [ data ], context, scripts );
+
+	if ( scripts && scripts.length ) {
+		jQuery( scripts ).remove();
+	}
+
+	return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+	var selector, type, response,
+		self = this,
+		off = url.indexOf( " " );
+
+	if ( off > -1 ) {
+		selector = stripAndCollapse( url.slice( off ) );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax( {
+			url: url,
+
+			// If "type" variable is undefined, then "GET" method will be used.
+			// Make value of this field explicit since
+			// user can override it through ajaxSetup method
+			type: type || "GET",
+			dataType: "html",
+			data: params
+		} ).done( function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		// If the request succeeds, this function gets "data", "status", "jqXHR"
+		// but they are ignored because response was set above.
+		// If it fails, this function gets "jqXHR", "status", "error"
+		} ).always( callback && function( jqXHR, status ) {
+			self.each( function() {
+				callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+			} );
+		} );
+	}
+
+	return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+	"ajaxStart",
+	"ajaxStop",
+	"ajaxComplete",
+	"ajaxError",
+	"ajaxSuccess",
+	"ajaxSend"
+], function( i, type ) {
+	jQuery.fn[ type ] = function( fn ) {
+		return this.on( type, fn );
+	};
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+	return jQuery.grep( jQuery.timers, function( fn ) {
+		return elem === fn.elem;
+	} ).length;
+};
+
+
+
+
+jQuery.offset = {
+	setOffset: function( elem, options, i ) {
+		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+			position = jQuery.css( elem, "position" ),
+			curElem = jQuery( elem ),
+			props = {};
+
+		// Set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		curOffset = curElem.offset();
+		curCSSTop = jQuery.css( elem, "top" );
+		curCSSLeft = jQuery.css( elem, "left" );
+		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+		// Need to be able to calculate position if either
+		// top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( isFunction( options ) ) {
+
+			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	// offset() relates an element's border box to the document origin
+	offset: function( options ) {
+
+		// Preserve chaining for setter
+		if ( arguments.length ) {
+			return options === undefined ?
+				this :
+				this.each( function( i ) {
+					jQuery.offset.setOffset( this, options, i );
+				} );
+		}
+
+		var rect, win,
+			elem = this[ 0 ];
+
+		if ( !elem ) {
+			return;
+		}
+
+		// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+		// Support: IE <=11 only
+		// Running getBoundingClientRect on a
+		// disconnected node in IE throws an error
+		if ( !elem.getClientRects().length ) {
+			return { top: 0, left: 0 };
+		}
+
+		// Get document-relative position by adding viewport scroll to viewport-relative gBCR
+		rect = elem.getBoundingClientRect();
+		win = elem.ownerDocument.defaultView;
+		return {
+			top: rect.top + win.pageYOffset,
+			left: rect.left + win.pageXOffset
+		};
+	},
+
+	// position() relates an element's margin box to its offset parent's padding box
+	// This corresponds to the behavior of CSS absolute positioning
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset, doc,
+			elem = this[ 0 ],
+			parentOffset = { top: 0, left: 0 };
+
+		// position:fixed elements are offset from the viewport, which itself always has zero offset
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+			// Assume position:fixed implies availability of getBoundingClientRect
+			offset = elem.getBoundingClientRect();
+
+		} else {
+			offset = this.offset();
+
+			// Account for the *real* offset parent, which can be the document or its root element
+			// when a statically positioned element is identified
+			doc = elem.ownerDocument;
+			offsetParent = elem.offsetParent || doc.documentElement;
+			while ( offsetParent &&
+				( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
+				jQuery.css( offsetParent, "position" ) === "static" ) {
+
+				offsetParent = offsetParent.parentNode;
+			}
+			if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
+
+				// Incorporate borders into its offset, since they are outside its content origin
+				parentOffset = jQuery( offsetParent ).offset();
+				parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
+				parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
+			}
+		}
+
+		// Subtract parent offsets and element margins
+		return {
+			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+		};
+	},
+
+	// This method will return documentElement in the following cases:
+	// 1) For the element inside the iframe without offsetParent, this method will return
+	//    documentElement of the parent window
+	// 2) For the hidden or detached element
+	// 3) For body or html element, i.e. in case of the html node - it will return itself
+	//
+	// but those exceptions were never presented as a real life use-cases
+	// and might be considered as more preferable results.
+	//
+	// This logic, however, is not guaranteed and can change at any point in the future
+	offsetParent: function() {
+		return this.map( function() {
+			var offsetParent = this.offsetParent;
+
+			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+
+			return offsetParent || documentElement;
+		} );
+	}
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+	var top = "pageYOffset" === prop;
+
+	jQuery.fn[ method ] = function( val ) {
+		return access( this, function( elem, method, val ) {
+
+			// Coalesce documents and windows
+			var win;
+			if ( isWindow( elem ) ) {
+				win = elem;
+			} else if ( elem.nodeType === 9 ) {
+				win = elem.defaultView;
+			}
+
+			if ( val === undefined ) {
+				return win ? win[ prop ] : elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : win.pageXOffset,
+					top ? val : win.pageYOffset
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length );
+	};
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+		function( elem, computed ) {
+			if ( computed ) {
+				computed = curCSS( elem, prop );
+
+				// If curCSS returns percentage, fallback to offset
+				return rnumnonpx.test( computed ) ?
+					jQuery( elem ).position()[ prop ] + "px" :
+					computed;
+			}
+		}
+	);
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+		function( defaultExtra, funcName ) {
+
+		// Margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( isWindow( elem ) ) {
+
+					// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+					return funcName.indexOf( "outer" ) === 0 ?
+						elem[ "inner" + name ] :
+						elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+					// whichever is greatest
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable );
+		};
+	} );
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+jQuery.fn.extend( {
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+
+
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	}
+} );
+
+// Bind a function to a context, optionally partially applying any
+// arguments.
+// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
+// However, it is not slated for removal any time soon
+jQuery.proxy = function( fn, context ) {
+	var tmp, args, proxy;
+
+	if ( typeof context === "string" ) {
+		tmp = fn[ context ];
+		context = fn;
+		fn = tmp;
+	}
+
+	// Quick check to determine if target is callable, in the spec
+	// this throws a TypeError, but we will just return undefined.
+	if ( !isFunction( fn ) ) {
+		return undefined;
+	}
+
+	// Simulated bind
+	args = slice.call( arguments, 2 );
+	proxy = function() {
+		return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+	};
+
+	// Set the guid of unique handler to the same of original handler, so it can be removed
+	proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+	return proxy;
+};
+
+jQuery.holdReady = function( hold ) {
+	if ( hold ) {
+		jQuery.readyWait++;
+	} else {
+		jQuery.ready( true );
+	}
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+jQuery.isFunction = isFunction;
+jQuery.isWindow = isWindow;
+jQuery.camelCase = camelCase;
+jQuery.type = toType;
+
+jQuery.now = Date.now;
+
+jQuery.isNumeric = function( obj ) {
+
+	// As of jQuery 3.0, isNumeric is limited to
+	// strings and numbers (primitives or objects)
+	// that can be coerced to finite numbers (gh-2662)
+	var type = jQuery.type( obj );
+	return ( type === "number" || type === "string" ) &&
+
+		// parseFloat NaNs numeric-cast false positives ("")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		!isNaN( obj - parseFloat( obj ) );
+};
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+	define( "jquery", [], function() {
+		return jQuery;
+	} );
+}
+
+
+
+
+var
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+	if ( window.$ === jQuery ) {
+		window.$ = _$;
+	}
+
+	if ( deep && window.jQuery === jQuery ) {
+		window.jQuery = _jQuery;
+	}
+
+	return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+	window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/apidocs/2.1.6/jquery/jquery-migrate-3.0.1.js b/apidocs/2.1.6/jquery/jquery-migrate-3.0.1.js
new file mode 100644
index 0000000..6c1d4ff
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-migrate-3.0.1.js
@@ -0,0 +1,628 @@
+/*!
+ * jQuery Migrate - v3.0.1 - 2017-09-26
+ * Copyright jQuery Foundation and other contributors
+ */
+;( function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define( [ "jquery" ], window, factory );
+	} else if ( typeof module === "object" && module.exports ) {
+
+		// Node/CommonJS
+		// eslint-disable-next-line no-undef
+		module.exports = factory( require( "jquery" ), window );
+	} else {
+
+		// Browser globals
+		factory( jQuery, window );
+	}
+} )( function( jQuery, window ) {
+"use strict";
+
+
+jQuery.migrateVersion = "3.0.1";
+
+jQuery.migrateMute = true;
+
+/* exported migrateWarn, migrateWarnFunc, migrateWarnProp */
+
+( function() {
+
+	var rbadVersions = /^[12]\./;
+
+	// Support: IE9 only
+	// IE9 only creates console object when dev tools are first opened
+	// IE9 console is a host object, callable but doesn't have .apply()
+	if ( !window.console || !window.console.log ) {
+		return;
+	}
+
+	// Need jQuery 3.0.0+ and no older Migrate loaded
+	if ( !jQuery || rbadVersions.test( jQuery.fn.jquery ) ) {
+		window.console.log( "JQMIGRATE: jQuery 3.0.0+ REQUIRED" );
+	}
+	if ( jQuery.migrateWarnings ) {
+		window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" );
+	}
+
+	// Show a message on the console so devs know we're active
+	window.console.log( "JQMIGRATE: Migrate is installed" +
+		( jQuery.migrateMute ? "" : " with logging active" ) +
+		", version " + jQuery.migrateVersion );
+
+} )();
+
+var warnedAbout = {};
+
+// List of warnings already given; public read only
+jQuery.migrateWarnings = [];
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+	jQuery.migrateTrace = true;
+}
+
+// Forget any warnings we've already given; public
+jQuery.migrateReset = function() {
+	warnedAbout = {};
+	jQuery.migrateWarnings.length = 0;
+};
+
+function migrateWarn( msg ) {
+	var console = window.console;
+	if ( !warnedAbout[ msg ] ) {
+		warnedAbout[ msg ] = true;
+		jQuery.migrateWarnings.push( msg );
+		if ( console && console.warn && !jQuery.migrateMute ) {
+			console.warn( "JQMIGRATE: " + msg );
+			if ( jQuery.migrateTrace && console.trace ) {
+				console.trace();
+			}
+		}
+	}
+}
+
+function migrateWarnProp( obj, prop, value, msg ) {
+	Object.defineProperty( obj, prop, {
+		configurable: true,
+		enumerable: true,
+		get: function() {
+			migrateWarn( msg );
+			return value;
+		},
+		set: function( newValue ) {
+			migrateWarn( msg );
+			value = newValue;
+		}
+	} );
+}
+
+function migrateWarnFunc( obj, prop, newFunc, msg ) {
+	obj[ prop ] = function() {
+		migrateWarn( msg );
+		return newFunc.apply( this, arguments );
+	};
+}
+
+if ( window.document.compatMode === "BackCompat" ) {
+
+	// JQuery has never supported or tested Quirks Mode
+	migrateWarn( "jQuery is not compatible with Quirks Mode" );
+}
+
+
+var oldInit = jQuery.fn.init,
+	oldIsNumeric = jQuery.isNumeric,
+	oldFind = jQuery.find,
+	rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
+	rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;
+
+jQuery.fn.init = function( arg1 ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	if ( typeof arg1 === "string" && arg1 === "#" ) {
+
+		// JQuery( "#" ) is a bogus ID selector, but it returned an empty set before jQuery 3.0
+		migrateWarn( "jQuery( '#' ) is not a valid selector" );
+		args[ 0 ] = [];
+	}
+
+	return oldInit.apply( this, args );
+};
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.find = function( selector ) {
+	var args = Array.prototype.slice.call( arguments );
+
+	// Support: PhantomJS 1.x
+	// String#match fails to match when used with a //g RegExp, only on some strings
+	if ( typeof selector === "string" && rattrHashTest.test( selector ) ) {
+
+		// The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
+		// First see if qS thinks it's a valid selector, if so avoid a false positive
+		try {
+			window.document.querySelector( selector );
+		} catch ( err1 ) {
+
+			// Didn't *look* valid to qSA, warn and try quoting what we think is the value
+			selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) {
+				return "[" + attr + op + "\"" + value + "\"]";
+			} );
+
+			// If the regexp *may* have created an invalid selector, don't update it
+			// Note that there may be false alarms if selector uses jQuery extensions
+			try {
+				window.document.querySelector( selector );
+				migrateWarn( "Attribute selector with '#' must be quoted: " + args[ 0 ] );
+				args[ 0 ] = selector;
+			} catch ( err2 ) {
+				migrateWarn( "Attribute selector with '#' was not fixed: " + args[ 0 ] );
+			}
+		}
+	}
+
+	return oldFind.apply( this, args );
+};
+
+// Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
+var findProp;
+for ( findProp in oldFind ) {
+	if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) {
+		jQuery.find[ findProp ] = oldFind[ findProp ];
+	}
+}
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+	migrateWarn( "jQuery.fn.size() is deprecated and removed; use the .length property" );
+	return this.length;
+};
+
+jQuery.parseJSON = function() {
+	migrateWarn( "jQuery.parseJSON is deprecated; use JSON.parse" );
+	return JSON.parse.apply( null, arguments );
+};
+
+jQuery.isNumeric = function( val ) {
+
+	// The jQuery 2.2.3 implementation of isNumeric
+	function isNumeric2( obj ) {
+		var realStringObj = obj && obj.toString();
+		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
+	}
+
+	var newValue = oldIsNumeric( val ),
+		oldValue = isNumeric2( val );
+
+	if ( newValue !== oldValue ) {
+		migrateWarn( "jQuery.isNumeric() should not be called on constructed objects" );
+	}
+
+	return oldValue;
+};
+
+migrateWarnFunc( jQuery, "holdReady", jQuery.holdReady,
+	"jQuery.holdReady is deprecated" );
+
+migrateWarnFunc( jQuery, "unique", jQuery.uniqueSort,
+	"jQuery.unique is deprecated; use jQuery.uniqueSort" );
+
+// Now jQuery.expr.pseudos is the standard incantation
+migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos,
+	"jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" );
+migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos,
+	"jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" );
+
+
+var oldAjax = jQuery.ajax;
+
+jQuery.ajax = function( ) {
+	var jQXHR = oldAjax.apply( this, arguments );
+
+	// Be sure we got a jQXHR (e.g., not sync)
+	if ( jQXHR.promise ) {
+		migrateWarnFunc( jQXHR, "success", jQXHR.done,
+			"jQXHR.success is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "error", jQXHR.fail,
+			"jQXHR.error is deprecated and removed" );
+		migrateWarnFunc( jQXHR, "complete", jQXHR.always,
+			"jQXHR.complete is deprecated and removed" );
+	}
+
+	return jQXHR;
+};
+
+
+var oldRemoveAttr = jQuery.fn.removeAttr,
+	oldToggleClass = jQuery.fn.toggleClass,
+	rmatchNonSpace = /\S+/g;
+
+jQuery.fn.removeAttr = function( name ) {
+	var self = this;
+
+	jQuery.each( name.match( rmatchNonSpace ), function( i, attr ) {
+		if ( jQuery.expr.match.bool.test( attr ) ) {
+			migrateWarn( "jQuery.fn.removeAttr no longer sets boolean properties: " + attr );
+			self.prop( attr, false );
+		}
+	} );
+
+	return oldRemoveAttr.apply( this, arguments );
+};
+
+jQuery.fn.toggleClass = function( state ) {
+
+	// Only deprecating no-args or single boolean arg
+	if ( state !== undefined && typeof state !== "boolean" ) {
+		return oldToggleClass.apply( this, arguments );
+	}
+
+	migrateWarn( "jQuery.fn.toggleClass( boolean ) is deprecated" );
+
+	// Toggle entire class name of each element
+	return this.each( function() {
+		var className = this.getAttribute && this.getAttribute( "class" ) || "";
+
+		if ( className ) {
+			jQuery.data( this, "__className__", className );
+		}
+
+		// If the element has a class name or if we're passed `false`,
+		// then remove the whole classname (if there was one, the above saved it).
+		// Otherwise bring back whatever was previously saved (if anything),
+		// falling back to the empty string if nothing was stored.
+		if ( this.setAttribute ) {
+			this.setAttribute( "class",
+				className || state === false ?
+				"" :
+				jQuery.data( this, "__className__" ) || ""
+			);
+		}
+	} );
+};
+
+
+var internalSwapCall = false;
+
+// If this version of jQuery has .swap(), don't false-alarm on internal uses
+if ( jQuery.swap ) {
+	jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) {
+		var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get;
+
+		if ( oldHook ) {
+			jQuery.cssHooks[ name ].get = function() {
+				var ret;
+
+				internalSwapCall = true;
+				ret = oldHook.apply( this, arguments );
+				internalSwapCall = false;
+				return ret;
+			};
+		}
+	} );
+}
+
+jQuery.swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
+
+	if ( !internalSwapCall ) {
+		migrateWarn( "jQuery.swap() is undocumented and deprecated" );
+	}
+
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
+
+	ret = callback.apply( elem, args || [] );
+
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
+
+	return ret;
+};
+
+var oldData = jQuery.data;
+
+jQuery.data = function( elem, name, value ) {
+	var curData;
+
+	// Name can be an object, and each entry in the object is meant to be set as data
+	if ( name && typeof name === "object" && arguments.length === 2 ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		var sameKeys = {};
+		for ( var key in name ) {
+			if ( key !== jQuery.camelCase( key ) ) {
+				migrateWarn( "jQuery.data() always sets/gets camelCased names: " + key );
+				curData[ key ] = name[ key ];
+			} else {
+				sameKeys[ key ] = name[ key ];
+			}
+		}
+
+		oldData.call( this, elem, sameKeys );
+
+		return name;
+	}
+
+	// If the name is transformed, look for the un-transformed name in the data object
+	if ( name && typeof name === "string" && name !== jQuery.camelCase( name ) ) {
+		curData = jQuery.hasData( elem ) && oldData.call( this, elem );
+		if ( curData && name in curData ) {
+			migrateWarn( "jQuery.data() always sets/gets camelCased names: " + name );
+			if ( arguments.length > 2 ) {
+				curData[ name ] = value;
+			}
+			return curData[ name ];
+		}
+	}
+
+	return oldData.apply( this, arguments );
+};
+
+var oldTweenRun = jQuery.Tween.prototype.run;
+var linearEasing = function( pct ) {
+		return pct;
+	};
+
+jQuery.Tween.prototype.run = function( ) {
+	if ( jQuery.easing[ this.easing ].length > 1 ) {
+		migrateWarn(
+			"'jQuery.easing." + this.easing.toString() + "' should use only one argument"
+		);
+
+		jQuery.easing[ this.easing ] = linearEasing;
+	}
+
+	oldTweenRun.apply( this, arguments );
+};
+
+jQuery.fx.interval = jQuery.fx.interval || 13;
+
+// Support: IE9, Android <=4.4
+// Avoid false positives on browsers that lack rAF
+if ( window.requestAnimationFrame ) {
+	migrateWarnProp( jQuery.fx, "interval", jQuery.fx.interval,
+		"jQuery.fx.interval is deprecated" );
+}
+
+var oldLoad = jQuery.fn.load,
+	oldEventAdd = jQuery.event.add,
+	originalFix = jQuery.event.fix;
+
+jQuery.event.props = [];
+jQuery.event.fixHooks = {};
+
+migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat,
+	"jQuery.event.props.concat() is deprecated and removed" );
+
+jQuery.event.fix = function( originalEvent ) {
+	var event,
+		type = originalEvent.type,
+		fixHook = this.fixHooks[ type ],
+		props = jQuery.event.props;
+
+	if ( props.length ) {
+		migrateWarn( "jQuery.event.props are deprecated and removed: " + props.join() );
+		while ( props.length ) {
+			jQuery.event.addProp( props.pop() );
+		}
+	}
+
+	if ( fixHook && !fixHook._migrated_ ) {
+		fixHook._migrated_ = true;
+		migrateWarn( "jQuery.event.fixHooks are deprecated and removed: " + type );
+		if ( ( props = fixHook.props ) && props.length ) {
+			while ( props.length ) {
+				jQuery.event.addProp( props.pop() );
+			}
+		}
+	}
+
+	event = originalFix.call( this, originalEvent );
+
+	return fixHook && fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+};
+
+jQuery.event.add = function( elem, types ) {
+
+	// This misses the multiple-types case but that seems awfully rare
+	if ( elem === window && types === "load" && window.document.readyState === "complete" ) {
+		migrateWarn( "jQuery(window).on('load'...) called after load event occurred" );
+	}
+	return oldEventAdd.apply( this, arguments );
+};
+
+jQuery.each( [ "load", "unload", "error" ], function( _, name ) {
+
+	jQuery.fn[ name ] = function() {
+		var args = Array.prototype.slice.call( arguments, 0 );
+
+		// If this is an ajax load() the first arg should be the string URL;
+		// technically this could also be the "Anything" arg of the event .load()
+		// which just goes to show why this dumb signature has been deprecated!
+		// jQuery custom builds that exclude the Ajax module justifiably die here.
+		if ( name === "load" && typeof args[ 0 ] === "string" ) {
+			return oldLoad.apply( this, args );
+		}
+
+		migrateWarn( "jQuery.fn." + name + "() is deprecated" );
+
+		args.splice( 0, 0, name );
+		if ( arguments.length ) {
+			return this.on.apply( this, args );
+		}
+
+		// Use .triggerHandler here because:
+		// - load and unload events don't need to bubble, only applied to window or image
+		// - error event should not bubble to window, although it does pre-1.7
+		// See http://bugs.jquery.com/ticket/11820
+		this.triggerHandler.apply( this, args );
+		return this;
+	};
+
+} );
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		migrateWarn( "jQuery.fn." + name + "() event shorthand is deprecated" );
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+} );
+
+// Trigger "ready" event only once, on document ready
+jQuery( function() {
+	jQuery( window.document ).triggerHandler( "ready" );
+} );
+
+jQuery.event.special.ready = {
+	setup: function() {
+		if ( this === window.document ) {
+			migrateWarn( "'ready' event is deprecated" );
+		}
+	}
+};
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		migrateWarn( "jQuery.fn.bind() is deprecated" );
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		migrateWarn( "jQuery.fn.unbind() is deprecated" );
+		return this.off( types, null, fn );
+	},
+	delegate: function( selector, types, data, fn ) {
+		migrateWarn( "jQuery.fn.delegate() is deprecated" );
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		migrateWarn( "jQuery.fn.undelegate() is deprecated" );
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	},
+	hover: function( fnOver, fnOut ) {
+		migrateWarn( "jQuery.fn.hover() is deprecated" );
+		return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver );
+	}
+} );
+
+
+var oldOffset = jQuery.fn.offset;
+
+jQuery.fn.offset = function() {
+	var docElem,
+		elem = this[ 0 ],
+		origin = { top: 0, left: 0 };
+
+	if ( !elem || !elem.nodeType ) {
+		migrateWarn( "jQuery.fn.offset() requires a valid DOM element" );
+		return origin;
+	}
+
+	docElem = ( elem.ownerDocument || window.document ).documentElement;
+	if ( !jQuery.contains( docElem, elem ) ) {
+		migrateWarn( "jQuery.fn.offset() requires an element connected to a document" );
+		return origin;
+	}
+
+	return oldOffset.apply( this, arguments );
+};
+
+
+var oldParam = jQuery.param;
+
+jQuery.param = function( data, traditional ) {
+	var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+
+	if ( traditional === undefined && ajaxTraditional ) {
+
+		migrateWarn( "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" );
+		traditional = ajaxTraditional;
+	}
+
+	return oldParam.call( this, data, traditional );
+};
+
+var oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
+
+jQuery.fn.andSelf = function() {
+	migrateWarn( "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" );
+	return oldSelf.apply( this, arguments );
+};
+
+
+var oldDeferred = jQuery.Deferred,
+	tuples = [
+
+		// Action, add listener, callbacks, .then handlers, final state
+		[ "resolve", "done", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "resolved" ],
+		[ "reject", "fail", jQuery.Callbacks( "once memory" ),
+			jQuery.Callbacks( "once memory" ), "rejected" ],
+		[ "notify", "progress", jQuery.Callbacks( "memory" ),
+			jQuery.Callbacks( "memory" ) ]
+	];
+
+jQuery.Deferred = function( func ) {
+	var deferred = oldDeferred(),
+		promise = deferred.promise();
+
+	deferred.pipe = promise.pipe = function( /* fnDone, fnFail, fnProgress */ ) {
+		var fns = arguments;
+
+		migrateWarn( "deferred.pipe() is deprecated" );
+
+		return jQuery.Deferred( function( newDefer ) {
+			jQuery.each( tuples, function( i, tuple ) {
+				var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+
+				// Deferred.done(function() { bind to newDefer or newDefer.resolve })
+				// deferred.fail(function() { bind to newDefer or newDefer.reject })
+				// deferred.progress(function() { bind to newDefer or newDefer.notify })
+				deferred[ tuple[ 1 ] ]( function() {
+					var returned = fn && fn.apply( this, arguments );
+					if ( returned && jQuery.isFunction( returned.promise ) ) {
+						returned.promise()
+							.done( newDefer.resolve )
+							.fail( newDefer.reject )
+							.progress( newDefer.notify );
+					} else {
+						newDefer[ tuple[ 0 ] + "With" ](
+							this === promise ? newDefer.promise() : this,
+							fn ? [ returned ] : arguments
+						);
+					}
+				} );
+			} );
+			fns = null;
+		} ).promise();
+
+	};
+
+	if ( func ) {
+		func.call( deferred, deferred );
+	}
+
+	return deferred;
+};
+
+// Preserve handler of uncaught exceptions in promise chains
+jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
+
+return jQuery;
+} );
diff --git a/apidocs/2.1.6/jquery/jquery-ui.css b/apidocs/2.1.6/jquery/jquery-ui.css
new file mode 100644
index 0000000..c4487b4
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-ui.css
@@ -0,0 +1,582 @@
+/*! jQuery UI - v1.12.1 - 2018-12-06
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgImgOpacityContent=75&bgImgOpacityHeader=75&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23cd0a0a&fcError=%23cd0a0a&borderColorError=%23cd0a0a&bgTextureError=glass&bgColorError=%23fef1ec&iconColorHighlight=%232e83ff&fcHighlight=%23363636&borderColorHighlight=%23fcefa1&bgTextureHighlight=glass&bgColorHighlight=%23fbf9ee&iconColorActive=%23454545&fcActive=%23212121&borderColorActive=%23aaaaaa&bgTextureActive=glass&bgColorActive=%23dadada&iconColorHover=%23454545&fcHover=%23212121&borderColorHover=%23999999&bgTextureHover=glass&bgColorHover=%23dadada&iconColorDefault=%23888888&fcDefault=%23555555&borderColorDefault=%23d3d3d3&bgTextureDefault=glass&bgColorDefault=%23e6e6e6&iconColorContent=%23222222&fcContent=%23222222&borderColorContent=%23aaaaaa&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23222222&fcHeader=%23222222&borderColorHeader=%23aaaaaa&bgTextureHeader=highlight_soft&bgColorHeader=%23cccccc&cornerRadius=4px&fwDefault=normal&fsDefault=1.1em&ffDefault=Verdana%2CArial%2Csans-serif
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+	pointer-events: none;
+}
+
+
+/* Icons
+----------------------------------*/
+.ui-icon {
+	display: inline-block;
+	vertical-align: middle;
+	margin-top: -.25em;
+	position: relative;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+.ui-widget-icon-block {
+	left: 50%;
+	margin-left: -8px;
+	display: block;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: 0;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	margin: 0;
+	cursor: pointer;
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-item-wrapper {
+	position: relative;
+	padding: 3px 1em 3px .4em;
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item-wrapper {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Verdana,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget.ui-widget-content {
+	border: 1px solid #d3d3d3;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #ffffff;
+	color: #222222;
+}
+.ui-widget-content a {
+	color: #222222;
+}
+.ui-widget-header {
+	border: 1px solid #aaaaaa;
+	background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
+	color: #222222;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #222222;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default,
+.ui-button,
+
+/* We use html here because we need a greater specificity to make sure disabled
+works properly when clicked or hovered */
+html .ui-button.ui-state-disabled:hover,
+html .ui-button.ui-state-disabled:active {
+	border: 1px solid #d3d3d3;
+	background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #555555;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited,
+a.ui-button,
+a:link.ui-button,
+a:visited.ui-button,
+.ui-button {
+	color: #555555;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus,
+.ui-button:hover,
+.ui-button:focus {
+	border: 1px solid #999999;
+	background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited,
+a.ui-button:hover,
+a.ui-button:focus {
+	color: #212121;
+	text-decoration: none;
+}
+
+.ui-visual-focus {
+	box-shadow: 0 0 3px 1px rgb(94, 158, 214);
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active,
+a.ui-button:active,
+.ui-button:active,
+.ui-button.ui-state-active:hover {
+	border: 1px solid #aaaaaa;
+	background: #dadada url("images/ui-bg_glass_65_dadada_1x400.png") 50% 50% repeat-x;
+	font-weight: normal;
+	color: #212121;
+}
+.ui-icon-background,
+.ui-state-active .ui-icon-background {
+	border: #aaaaaa;
+	background-color: #212121;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #212121;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #fcefa1;
+	background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
+	color: #363636;
+}
+.ui-state-checked {
+	border: 1px solid #fcefa1;
+	background: #fbf9ee;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #363636;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #cd0a0a;
+	background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
+	color: #cd0a0a;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #cd0a0a;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #cd0a0a;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70); /* support: IE8 */
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35); /* support: IE8 */
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-widget-header .ui-icon {
+	background-image: url("images/ui-icons_222222_256x240.png");
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon,
+.ui-button:hover .ui-icon,
+.ui-button:focus .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-active .ui-icon,
+.ui-button:active .ui-icon {
+	background-image: url("images/ui-icons_454545_256x240.png");
+}
+.ui-state-highlight .ui-icon,
+.ui-button .ui-state-highlight.ui-icon {
+	background-image: url("images/ui-icons_2e83ff_256x240.png");
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("images/ui-icons_cd0a0a_256x240.png");
+}
+.ui-button .ui-icon {
+	background-image: url("images/ui-icons_888888_256x240.png");
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-caret-1-n { background-position: 0 0; }
+.ui-icon-caret-1-ne { background-position: -16px 0; }
+.ui-icon-caret-1-e { background-position: -32px 0; }
+.ui-icon-caret-1-se { background-position: -48px 0; }
+.ui-icon-caret-1-s { background-position: -65px 0; }
+.ui-icon-caret-1-sw { background-position: -80px 0; }
+.ui-icon-caret-1-w { background-position: -96px 0; }
+.ui-icon-caret-1-nw { background-position: -112px 0; }
+.ui-icon-caret-2-n-s { background-position: -128px 0; }
+.ui-icon-caret-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -65px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -65px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 1px -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 4px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 4px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #aaaaaa;
+	opacity: .3;
+	filter: Alpha(Opacity=30); /* support: IE8 */
+}
+.ui-widget-shadow {
+	-webkit-box-shadow: -8px -8px 8px #aaaaaa;
+	box-shadow: -8px -8px 8px #aaaaaa;
+}
diff --git a/apidocs/2.1.6/jquery/jquery-ui.js b/apidocs/2.1.6/jquery/jquery-ui.js
new file mode 100644
index 0000000..87fb214
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-ui.js
@@ -0,0 +1,2659 @@
+/*! jQuery UI - v1.12.1 - 2018-12-06
+* http://jqueryui.com
+* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+
+$.ui = $.ui || {};
+
+var version = $.ui.version = "1.12.1";
+
+
+/*!
+ * jQuery UI Widget 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Widget
+//>>group: Core
+//>>description: Provides a factory for creating stateful widgets with a common API.
+//>>docs: http://api.jqueryui.com/jQuery.widget/
+//>>demos: http://jqueryui.com/widget/
+
+
+
+var widgetUuid = 0;
+var widgetSlice = Array.prototype.slice;
+
+$.cleanData = ( function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// Http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+} )( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var existingConstructor, constructor, basePrototype;
+
+	// ProxiedPrototype allows the provided prototype to remain unmodified
+	// so that it can be used as a mixin for multiple widgets (#8876)
+	var proxiedPrototype = {};
+
+	var namespace = name.split( "." )[ 0 ];
+	name = name.split( "." )[ 1 ];
+	var fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	if ( $.isArray( prototype ) ) {
+		prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
+	}
+
+	// Create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+
+		// Allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// Allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+
+	// Extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+
+		// Copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+
+		// Track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	} );
+
+	basePrototype = new base();
+
+	// We need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = ( function() {
+			function _super() {
+				return base.prototype[ prop ].apply( this, arguments );
+			}
+
+			function _superApply( args ) {
+				return base.prototype[ prop ].apply( this, args );
+			}
+
+			return function() {
+				var __super = this._super;
+				var __superApply = this._superApply;
+				var returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		} )();
+	} );
+	constructor.prototype = $.widget.extend( basePrototype, {
+
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	} );
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// Redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
+				child._proto );
+		} );
+
+		// Remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widgetSlice.call( arguments, 1 );
+	var inputIndex = 0;
+	var inputLength = input.length;
+	var key;
+	var value;
+
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string";
+		var args = widgetSlice.call( arguments, 1 );
+		var returnValue = this;
+
+		if ( isMethodCall ) {
+
+			// If this is an empty collection, we need to have the instance method
+			// return undefined instead of the jQuery instance
+			if ( !this.length && options === "instance" ) {
+				returnValue = undefined;
+			} else {
+				this.each( function() {
+					var methodValue;
+					var instance = $.data( this, fullName );
+
+					if ( options === "instance" ) {
+						returnValue = instance;
+						return false;
+					}
+
+					if ( !instance ) {
+						return $.error( "cannot call methods on " + name +
+							" prior to initialization; " +
+							"attempted to call method '" + options + "'" );
+					}
+
+					if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
+						return $.error( "no such method '" + options + "' for " + name +
+							" widget instance" );
+					}
+
+					methodValue = instance[ options ].apply( instance, args );
+
+					if ( methodValue !== instance && methodValue !== undefined ) {
+						returnValue = methodValue && methodValue.jquery ?
+							returnValue.pushStack( methodValue.get() ) :
+							methodValue;
+						return false;
+					}
+				} );
+			}
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat( args ) );
+			}
+
+			this.each( function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			} );
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+
+	options: {
+		classes: {},
+		disabled: false,
+
+		// Callbacks
+		create: null
+	},
+
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widgetUuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+		this.classesElementLookup = {};
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			} );
+			this.document = $( element.style ?
+
+				// Element within the document
+				element.ownerDocument :
+
+				// Element is window or document
+				element.document || element );
+			this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+
+		if ( this.options.disabled ) {
+			this._setOptionDisabled( this.options.disabled );
+		}
+
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+
+	_getCreateOptions: function() {
+		return {};
+	},
+
+	_getCreateEventData: $.noop,
+
+	_create: $.noop,
+
+	_init: $.noop,
+
+	destroy: function() {
+		var that = this;
+
+		this._destroy();
+		$.each( this.classesElementLookup, function( key, value ) {
+			that._removeClass( value, key );
+		} );
+
+		// We can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.off( this.eventNamespace )
+			.removeData( this.widgetFullName );
+		this.widget()
+			.off( this.eventNamespace )
+			.removeAttr( "aria-disabled" );
+
+		// Clean up events and states
+		this.bindings.off( this.eventNamespace );
+	},
+
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key;
+		var parts;
+		var curOption;
+		var i;
+
+		if ( arguments.length === 0 ) {
+
+			// Don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+
+			// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "classes" ) {
+			this._setOptionClasses( value );
+		}
+
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this._setOptionDisabled( value );
+		}
+
+		return this;
+	},
+
+	_setOptionClasses: function( value ) {
+		var classKey, elements, currentElements;
+
+		for ( classKey in value ) {
+			currentElements = this.classesElementLookup[ classKey ];
+			if ( value[ classKey ] === this.options.classes[ classKey ] ||
+					!currentElements ||
+					!currentElements.length ) {
+				continue;
+			}
+
+			// We are doing this to create a new jQuery object because the _removeClass() call
+			// on the next line is going to destroy the reference to the current elements being
+			// tracked. We need to save a copy of this collection so that we can add the new classes
+			// below.
+			elements = $( currentElements.get() );
+			this._removeClass( currentElements, classKey );
+
+			// We don't use _addClass() here, because that uses this.options.classes
+			// for generating the string of classes. We want to use the value passed in from
+			// _setOption(), this is the new value of the classes option which was passed to
+			// _setOption(). We pass this value directly to _classes().
+			elements.addClass( this._classes( {
+				element: elements,
+				keys: classKey,
+				classes: value,
+				add: true
+			} ) );
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
+
+		// If the widget is becoming disabled, then nothing is interactive
+		if ( value ) {
+			this._removeClass( this.hoverable, null, "ui-state-hover" );
+			this._removeClass( this.focusable, null, "ui-state-focus" );
+		}
+	},
+
+	enable: function() {
+		return this._setOptions( { disabled: false } );
+	},
+
+	disable: function() {
+		return this._setOptions( { disabled: true } );
+	},
+
+	_classes: function( options ) {
+		var full = [];
+		var that = this;
+
+		options = $.extend( {
+			element: this.element,
+			classes: this.options.classes || {}
+		}, options );
+
+		function processClassString( classes, checkOption ) {
+			var current, i;
+			for ( i = 0; i < classes.length; i++ ) {
+				current = that.classesElementLookup[ classes[ i ] ] || $();
+				if ( options.add ) {
+					current = $( $.unique( current.get().concat( options.element.get() ) ) );
+				} else {
+					current = $( current.not( options.element ).get() );
+				}
+				that.classesElementLookup[ classes[ i ] ] = current;
+				full.push( classes[ i ] );
+				if ( checkOption && options.classes[ classes[ i ] ] ) {
+					full.push( options.classes[ classes[ i ] ] );
+				}
+			}
+		}
+
+		this._on( options.element, {
+			"remove": "_untrackClassesElement"
+		} );
+
+		if ( options.keys ) {
+			processClassString( options.keys.match( /\S+/g ) || [], true );
+		}
+		if ( options.extra ) {
+			processClassString( options.extra.match( /\S+/g ) || [] );
+		}
+
+		return full.join( " " );
+	},
+
+	_untrackClassesElement: function( event ) {
+		var that = this;
+		$.each( that.classesElementLookup, function( key, value ) {
+			if ( $.inArray( event.target, value ) !== -1 ) {
+				that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
+			}
+		} );
+	},
+
+	_removeClass: function( element, keys, extra ) {
+		return this._toggleClass( element, keys, extra, false );
+	},
+
+	_addClass: function( element, keys, extra ) {
+		return this._toggleClass( element, keys, extra, true );
+	},
+
+	_toggleClass: function( element, keys, extra, add ) {
+		add = ( typeof add === "boolean" ) ? add : extra;
+		var shift = ( typeof element === "string" || element === null ),
+			options = {
+				extra: shift ? keys : extra,
+				keys: shift ? element : keys,
+				element: shift ? this.element : element,
+				add: add
+			};
+		options.element.toggleClass( this._classes( options ), add );
+		return this;
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement;
+		var instance = this;
+
+		// No suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// No element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+
+				// Allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+						$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// Copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ );
+			var eventName = match[ 1 ] + instance.eventNamespace;
+			var selector = match[ 2 ];
+
+			if ( selector ) {
+				delegateElement.on( eventName, selector, handlerProxy );
+			} else {
+				element.on( eventName, handlerProxy );
+			}
+		} );
+	},
+
+	_off: function( element, eventName ) {
+		eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.off( eventName ).off( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
+			}
+		} );
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
+			}
+		} );
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig;
+		var callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+
+		// The original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// Copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+
+		var hasOptions;
+		var effectName = !options ?
+			method :
+			options === true || typeof options === "number" ?
+				defaultEffect :
+				options.effect || defaultEffect;
+
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue( function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			} );
+		}
+	};
+} );
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Position 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+//>>label: Position
+//>>group: Core
+//>>description: Positions elements relative to other elements.
+//>>docs: http://api.jqueryui.com/position/
+//>>demos: http://jqueryui.com/position/
+
+
+( function() {
+var cachedScrollbarWidth,
+	max = Math.max,
+	abs = Math.abs,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[ 0 ];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div " +
+				"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" +
+				"<div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[ 0 ];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[ 0 ].clientWidth;
+		}
+
+		div.remove();
+
+		return ( cachedScrollbarWidth = w1 - w2 );
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[ 0 ] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,
+			hasOffset = !isWindow && !isDocument;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+			width: withinElement.outerWidth(),
+			height: withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// Make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[ 0 ].preventDefault ) {
+
+		// Force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+
+	// Clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// Force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1 ) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// Calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// Reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	} );
+
+	// Normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each( function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) +
+				scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) +
+				scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				} );
+			}
+		} );
+
+		if ( options.using ) {
+
+			// Adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	} );
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// Element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+
+				// Element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
+						withinOffset;
+					position.left += overLeft - newOverRight;
+
+				// Element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+
+				// Element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+
+			// Too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+
+			// Too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+
+			// Adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// Element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+
+				// Element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
+						withinOffset;
+					position.top += overTop - newOverBottom;
+
+				// Element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+
+				// Element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+
+			// Too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+
+			// Too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+
+			// Adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
+					outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
+					atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
+					outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
+					offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+} )();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI Keycode 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Keycode
+//>>group: Core
+//>>description: Provide keycodes as keynames
+//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
+
+
+var keycode = $.ui.keyCode = {
+	BACKSPACE: 8,
+	COMMA: 188,
+	DELETE: 46,
+	DOWN: 40,
+	END: 35,
+	ENTER: 13,
+	ESCAPE: 27,
+	HOME: 36,
+	LEFT: 37,
+	PAGE_DOWN: 34,
+	PAGE_UP: 33,
+	PERIOD: 190,
+	RIGHT: 39,
+	SPACE: 32,
+	TAB: 9,
+	UP: 38
+};
+
+
+/*!
+ * jQuery UI Unique ID 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: uniqueId
+//>>group: Core
+//>>description: Functions to generate and remove uniqueId's
+//>>docs: http://api.jqueryui.com/uniqueId/
+
+
+
+var uniqueId = $.fn.extend( {
+	uniqueId: ( function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each( function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			} );
+		};
+	} )(),
+
+	removeUniqueId: function() {
+		return this.each( function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		} );
+	}
+} );
+
+
+
+var safeActiveElement = $.ui.safeActiveElement = function( document ) {
+	var activeElement;
+
+	// Support: IE 9 only
+	// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+	try {
+		activeElement = document.activeElement;
+	} catch ( error ) {
+		activeElement = document.body;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE may return null instead of an element
+	// Interestingly, this only seems to occur when NOT in an iframe
+	if ( !activeElement ) {
+		activeElement = document.body;
+	}
+
+	// Support: IE 11 only
+	// IE11 returns a seemingly empty object in some cases when accessing
+	// document.activeElement from an <iframe>
+	if ( !activeElement.nodeName ) {
+		activeElement = document.body;
+	}
+
+	return activeElement;
+};
+
+
+/*!
+ * jQuery UI Menu 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Menu
+//>>group: Widgets
+//>>description: Creates nestable menus.
+//>>docs: http://api.jqueryui.com/menu/
+//>>demos: http://jqueryui.com/menu/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/menu.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsMenu = $.widget( "ui.menu", {
+	version: "1.12.1",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-caret-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// Callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.attr( {
+				role: this.options.role,
+				tabIndex: 0
+			} );
+
+		this._addClass( "ui-menu", "ui-widget ui-widget-content" );
+		this._on( {
+
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				var active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) &&
+							active.closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+
+				var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
+					target = $( event.currentTarget );
+
+				// Ignore bubbled events on parent items, see #11641
+				if ( actualTarget[ 0 ] !== target[ 0 ] ) {
+					return;
+				}
+
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				this._removeClass( target.siblings().children( ".ui-state-active" ),
+					null, "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay( function() {
+					var notContained = !$.contains(
+						this.element[ 0 ],
+						$.ui.safeActiveElement( this.document[ 0 ] )
+					);
+					if ( notContained ) {
+						this.collapseAll( event );
+					}
+				} );
+			},
+			keydown: "_keydown"
+		} );
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		} );
+	},
+
+	_destroy: function() {
+		var items = this.element.find( ".ui-menu-item" )
+				.removeAttr( "role aria-disabled" ),
+			submenus = items.children( ".ui-menu-item-wrapper" )
+				.removeUniqueId()
+				.removeAttr( "tabIndex role aria-haspopup" );
+
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
+					"tabIndex" )
+				.removeUniqueId()
+				.show();
+
+		submenus.children().each( function() {
+			var elem = $( this );
+			if ( elem.data( "ui-menu-submenu-caret" ) ) {
+				elem.remove();
+			}
+		} );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			skip = false;
+
+			// Support number pad values
+			character = event.keyCode >= 96 && event.keyCode <= 105 ?
+				( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay( function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.children( "[aria-haspopup='true']" ).length ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items, newSubmenus, newItems, newWrappers,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		newSubmenus = submenus.filter( ":not(.ui-menu)" )
+			.hide()
+			.attr( {
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			} )
+			.each( function() {
+				var menu = $( this ),
+					item = menu.prev(),
+					submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
+
+				that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCaret );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			} );
+
+		this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each( function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				that._addClass( item, "ui-menu-divider", "ui-widget-content" );
+			}
+		} );
+
+		// Don't refresh list items that are already adapted
+		newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
+		newWrappers = newItems.children()
+			.not( ".ui-menu" )
+				.uniqueId()
+				.attr( {
+					tabIndex: -1,
+					role: this._itemRole()
+				} );
+		this._addClass( newItems, "ui-menu-item" )
+			._addClass( newWrappers, "ui-menu-item-wrapper" );
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			var icons = this.element.find( ".ui-menu-icon" );
+			this._removeClass( icons, null, this.options.icons.submenu )
+				._addClass( icons, null, value.submenu );
+		}
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", String( value ) );
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused, activeParent;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+
+		focused = this.active.children( ".ui-menu-item-wrapper" );
+		this._addClass( focused, null, "ui-state-active" );
+
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		activeParent = this.active
+			.parent()
+				.closest( ".ui-menu-item" )
+					.children( ".ui-menu-item-wrapper" );
+		this._addClass( activeParent, null, "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay( function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening( nested );
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
+			null, "ui-state-active" );
+
+		this._trigger( "blur", event, { item: this.active } );
+		this.active = null;
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the caret icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay( function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend( {
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay( function() {
+
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all
+			// sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+
+			// Work around active item staying active after menu is blurred
+			this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
+
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu.find( ".ui-menu" )
+			.hide()
+			.attr( "aria-hidden", "true" )
+			.attr( "aria-expanded", "false" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+					.find( this.options.items )
+						.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay( function() {
+				this.focus( event, newItem );
+			} );
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each( function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			} );
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each( function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			} );
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function( character ) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+				// Only match on items, not dividers or other content (#10571)
+				.filter( ".ui-menu-item" )
+					.filter( function() {
+						return regex.test(
+							$.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) );
+					} );
+	}
+} );
+
+
+/*!
+ * jQuery UI Autocomplete 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Autocomplete
+//>>group: Widgets
+//>>description: Lists suggested words as the user is typing.
+//>>docs: http://api.jqueryui.com/autocomplete/
+//>>demos: http://jqueryui.com/autocomplete/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/autocomplete.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.12.1",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// Callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		// Textareas are always multi-line
+		// Inputs are always single-line, even if inside a contentEditable element
+		// IE also treats inputs as contentEditable
+		// All other element types are determined by whether or not they're contentEditable
+		this.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this._addClass( "ui-autocomplete-input" );
+		this.element.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// Replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		} );
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.appendTo( this._appendTo() )
+			.menu( {
+
+				// disable ARIA support, the live region takes care of that
+				role: null
+			} )
+			.hide()
+			.menu( "instance" );
+
+		this._addClass( this.menu.element, "ui-autocomplete", "ui-front" );
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay( function() {
+					delete this.cancelBlur;
+
+					// Support: IE 8 only
+					// Right clicking a menu item or selecting text from the menu items will
+					// result in focus moving out of the input. However, we've already received
+					// and ignored the blur event because of the cancelBlur flag set above. So
+					// we restore focus to ensure that the menu closes properly based on the user's
+					// next actions.
+					if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
+						this.element.trigger( "focus" );
+					}
+				} );
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						} );
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// Only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
+					this.element.trigger( "focus" );
+					this.previous = previous;
+
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay( function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					} );
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		} );
+
+		this.liveRegion = $( "<div>", {
+			role: "status",
+			"aria-live": "assertive",
+			"aria-relevant": "additions"
+		} )
+			.appendTo( this.document[ 0 ].body );
+
+		this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
+
+		// Turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		} );
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_isEventTargetInWidget: function( event ) {
+		var menuElement = this.menu.element[ 0 ];
+
+		return event.target === this.element[ 0 ] ||
+			event.target === menuElement ||
+			$.contains( menuElement, event.target );
+	},
+
+	_closeOnClickOutside: function( event ) {
+		if ( !this._isEventTargetInWidget( event ) ) {
+			this.close();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front, dialog" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax( {
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response( [] );
+					}
+				} );
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay( function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// Always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this._addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy( function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this._removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+
+		// Remove the handler that closes the menu on outside clicks
+		this._off( this.document, "mousedown" );
+
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			} );
+		} );
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// Size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend( {
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+
+		// Listen for interactions outside of the widget (#6642)
+		this._on( this.document, {
+			mousedown: "_closeOnClickOutside"
+		} );
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		} );
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" )
+			.append( $( "<div>" ).text( item.label ) )
+			.appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// Prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	},
+
+	// Support: Chrome <=50
+	// We should be able to just use this.element.prop( "isContentEditable" )
+	// but hidden elements always report false in Chrome.
+	// https://code.google.com/p/chromium/issues/detail?id=313082
+	_isContentEditable: function( element ) {
+		if ( !element.length ) {
+			return false;
+		}
+
+		var editable = element.prop( "contentEditable" );
+
+		if ( editable === "inherit" ) {
+		  return this._isContentEditable( element.parent() );
+		}
+
+		return editable === "true";
+	}
+} );
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		} );
+	}
+} );
+
+// Live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+} );
+
+var widgetsAutocomplete = $.ui.autocomplete;
+
+
+
+
+}));
\ No newline at end of file
diff --git a/apidocs/2.1.6/jquery/jquery-ui.min.css b/apidocs/2.1.6/jquery/jquery-ui.min.css
new file mode 100644
index 0000000..6be72f5
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-ui.min.css
@@ -0,0 +1,7 @@
+/*! jQuery UI - v1.12.1 - 2018-12-06
+* http://jqueryui.com
+* Includes: core.css, autocomplete.css, menu.css, theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgImgOpacityContent=75&bgImgOpacityHeader=75&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23cd0a0a&fcError=%23cd0a0a&borderColorError=%23cd0a0a&bgTextureError=glass&bgColorError=%23fef1ec&iconColorHighlight=%232e83ff&fcHighlight=%23363636&borderColorHighlight=%23fcefa1&bgTextureHighlight=glass&bgColorHighlight=%23fbf9ee&iconColorActive=%23454545&fcActive=%23212121&borderColorActive=%23aaaaaa&bgTextureActive=glass&bgColorActive=%23dadada&iconColorHover=%23454545&fcHover=%23212121&borderColorHover=%23999999&bgTextureHover=glass&bgColorHover=%23dadada&iconColorDefault=%23888888&fcDefault=%23555555&borderColorDefault=%23d3d3d3&bgTextureDefault=glass&bgColorDefault=%23e6e6e6&iconColorContent=%23222222&fcContent=%23222222&borderColorContent=%23aaaaaa&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23222222&fcHeader=%23222222&borderColorHeader=%23aaaaaa&bgTextureHeader=highlight_soft&bgColorHeader=%23cccccc&cornerRadius=4px&fwDefault=normal&fsDefault=1.1em&ffDefault=Verdana%2CArial%2Csans-serif
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#dadada url("images/ui-bg_glass_65_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa}
\ No newline at end of file
diff --git a/apidocs/2.1.6/jquery/jquery-ui.min.js b/apidocs/2.1.6/jquery/jquery-ui.min.js
new file mode 100644
index 0000000..54d4beb
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-ui.min.js
@@ -0,0 +1,6 @@
+/*! jQuery UI - v1.12.1 - 2018-12-06
+* http://jqueryui.com
+* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):l.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=l.test(i[1])?i[1]:"center",t=h.exec(i[0]),e=h.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,l=t(this),h=l.outerWidth(),c=l.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=h+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());"right"===n.my[0]?D.left-=h:"center"===n.my[0]&&(D.left-=h/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete});
\ No newline at end of file
diff --git a/apidocs/2.1.6/jquery/jquery-ui.structure.css b/apidocs/2.1.6/jquery/jquery-ui.structure.css
new file mode 100644
index 0000000..d8c81c2
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-ui.structure.css
@@ -0,0 +1,156 @@
+/*!
+ * jQuery UI CSS Framework 1.12.1
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/category/theming/
+ */
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0); /* support: IE8 */
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+	pointer-events: none;
+}
+
+
+/* Icons
+----------------------------------*/
+.ui-icon {
+	display: inline-block;
+	vertical-align: middle;
+	margin-top: -.25em;
+	position: relative;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+.ui-widget-icon-block {
+	left: 50%;
+	margin-left: -8px;
+	display: block;
+}
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-autocomplete {
+	position: absolute;
+	top: 0;
+	left: 0;
+	cursor: default;
+}
+.ui-menu {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+	display: block;
+	outline: 0;
+}
+.ui-menu .ui-menu {
+	position: absolute;
+}
+.ui-menu .ui-menu-item {
+	margin: 0;
+	cursor: pointer;
+	/* support: IE10, see #8844 */
+	list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
+}
+.ui-menu .ui-menu-item-wrapper {
+	position: relative;
+	padding: 3px 1em 3px .4em;
+}
+.ui-menu .ui-menu-divider {
+	margin: 5px 0;
+	height: 0;
+	font-size: 0;
+	line-height: 0;
+	border-width: 1px 0 0 0;
+}
+.ui-menu .ui-state-focus,
+.ui-menu .ui-state-active {
+	margin: -1px;
+}
+
+/* icon support */
+.ui-menu-icons {
+	position: relative;
+}
+.ui-menu-icons .ui-menu-item-wrapper {
+	padding-left: 2em;
+}
+
+/* left-aligned */
+.ui-menu .ui-icon {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: .2em;
+	margin: auto 0;
+}
+
+/* right-aligned */
+.ui-menu .ui-menu-icon {
+	left: auto;
+	right: 0;
+}
diff --git a/apidocs/2.1.6/jquery/jquery-ui.structure.min.css b/apidocs/2.1.6/jquery/jquery-ui.structure.min.css
new file mode 100644
index 0000000..e880892
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jquery-ui.structure.min.css
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.12.1 - 2018-12-06
+* http://jqueryui.com
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
\ No newline at end of file
diff --git a/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils-ie.js b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils-ie.js
new file mode 100644
index 0000000..a74cc70
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils-ie.js
@@ -0,0 +1,56 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+;(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+var global=typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {};/* jshint evil: true, newcap: false */
+/* global IEBinaryToArray_ByteStr, IEBinaryToArray_ByteStr_Last */
+"use strict";
+
+// Adapted from http://stackoverflow.com/questions/1095102/how-do-i-load-binary-image-data-using-javascript-and-xmlhttprequest
+var IEBinaryToArray_ByteStr_Script =
+    "<!-- IEBinaryToArray_ByteStr -->\r\n"+
+    "<script type='text/vbscript'>\r\n"+
+    "Function IEBinaryToArray_ByteStr(Binary)\r\n"+
+    "   IEBinaryToArray_ByteStr = CStr(Binary)\r\n"+
+    "End Function\r\n"+
+    "Function IEBinaryToArray_ByteStr_Last(Binary)\r\n"+
+    "   Dim lastIndex\r\n"+
+    "   lastIndex = LenB(Binary)\r\n"+
+    "   if lastIndex mod 2 Then\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n"+
+    "   Else\r\n"+
+    "       IEBinaryToArray_ByteStr_Last = "+'""'+"\r\n"+
+    "   End If\r\n"+
+    "End Function\r\n"+
+    "</script>\r\n";
+
+// inject VBScript
+document.write(IEBinaryToArray_ByteStr_Script);
+
+global.JSZipUtils._getBinaryFromXHR = function (xhr) {
+    var binary = xhr.responseBody;
+    var byteMapping = {};
+    for ( var i = 0; i < 256; i++ ) {
+        for ( var j = 0; j < 256; j++ ) {
+            byteMapping[ String.fromCharCode( i + (j << 8) ) ] =
+                String.fromCharCode(i) + String.fromCharCode(j);
+        }
+    }
+    var rawBytes = IEBinaryToArray_ByteStr(binary);
+    var lastChr = IEBinaryToArray_ByteStr_Last(binary);
+    return rawBytes.replace(/[\s\S]/g, function( match ) {
+        return byteMapping[match];
+    }) + lastChr;
+};
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+;
diff --git a/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils-ie.min.js
new file mode 100644
index 0000000..93d8bc8
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils-ie.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(){var a="undefined"!=typeof self?self:"undefined"!=typeof window?window:{},b="<!-- IEBinaryToArray_ByteStr -->\r\n<script type='text/vbscript'>\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n   IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n   Dim lastIndex\r\n   lastIndex = LenB(Binary)\r\n   if lastIndex mod 2 Then\r\n       IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n   Else\r\n       IEBinaryToArray_ByteStr_Last = \"\"\r\n   End If\r\nEnd Function\r\n</script>\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]);
diff --git a/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils.js b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils.js
new file mode 100644
index 0000000..775895e
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils.js
@@ -0,0 +1,118 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+
+var JSZipUtils = {};
+// just use the responseText with xhr1, response with xhr2.
+// The transformation doesn't throw away high-order byte (with responseText)
+// because JSZip handles that case. If not used with JSZip, you may need to
+// do it, see https://developer.mozilla.org/En/Using_XMLHttpRequest#Handling_binary_data
+JSZipUtils._getBinaryFromXHR = function (xhr) {
+    // for xhr.responseText, the 0xFF mask is applied by JSZip
+    return xhr.response || xhr.responseText;
+};
+
+// taken from jQuery
+function createStandardXHR() {
+    try {
+        return new window.XMLHttpRequest();
+    } catch( e ) {}
+}
+
+function createActiveXHR() {
+    try {
+        return new window.ActiveXObject("Microsoft.XMLHTTP");
+    } catch( e ) {}
+}
+
+// Create the request object
+var createXHR = window.ActiveXObject ?
+    /* Microsoft failed to properly
+     * implement the XMLHttpRequest in IE7 (can't request local files),
+     * so we use the ActiveXObject when it is available
+     * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+     * we need a fallback.
+     */
+    function() {
+    return createStandardXHR() || createActiveXHR();
+} :
+    // For all other browsers, use the standard XMLHttpRequest object
+    createStandardXHR;
+
+
+
+JSZipUtils.getBinaryContent = function(path, callback) {
+    /*
+     * Here is the tricky part : getting the data.
+     * In firefox/chrome/opera/... setting the mimeType to 'text/plain; charset=x-user-defined'
+     * is enough, the result is in the standard xhr.responseText.
+     * cf https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers
+     * In IE <= 9, we must use (the IE only) attribute responseBody
+     * (for binary data, its content is different from responseText).
+     * In IE 10, the 'charset=x-user-defined' trick doesn't work, only the
+     * responseType will work :
+     * http://msdn.microsoft.com/en-us/library/ie/hh673569%28v=vs.85%29.aspx#Binary_Object_upload_and_download
+     *
+     * I'd like to use jQuery to avoid this XHR madness, but it doesn't support
+     * the responseType attribute : http://bugs.jquery.com/ticket/11461
+     */
+    try {
+
+        var xhr = createXHR();
+
+        xhr.open('GET', path, true);
+
+        // recent browsers
+        if ("responseType" in xhr) {
+            xhr.responseType = "arraybuffer";
+        }
+
+        // older browser
+        if(xhr.overrideMimeType) {
+            xhr.overrideMimeType("text/plain; charset=x-user-defined");
+        }
+
+        xhr.onreadystatechange = function(evt) {
+            var file, err;
+            // use `xhr` and not `this`... thanks IE
+            if (xhr.readyState === 4) {
+                if (xhr.status === 200 || xhr.status === 0) {
+                    file = null;
+                    err = null;
+                    try {
+                        file = JSZipUtils._getBinaryFromXHR(xhr);
+                    } catch(e) {
+                        err = new Error(e);
+                    }
+                    callback(err, file);
+                } else {
+                    callback(new Error("Ajax error for " + path + " : " + this.status + " " + this.statusText), null);
+                }
+            }
+        };
+
+        xhr.send();
+
+    } catch (e) {
+        callback(new Error(e), null);
+    }
+};
+
+// export
+module.exports = JSZipUtils;
+
+// enforcing Stuk's coding style
+// vim: set shiftwidth=4 softtabstop=4:
+
+},{}]},{},[1])
+(1)
+});
+;
diff --git a/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils.min.js b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils.min.js
new file mode 100644
index 0000000..78c7f5e
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jszip-utils/dist/jszip-utils.min.js
@@ -0,0 +1,10 @@
+/*!
+
+JSZipUtils - A collection of cross-browser utilities to go along with JSZip.
+<http://stuk.github.io/jszip-utils>
+
+(c) 2014 Stuart Knightley, David Duponchel
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown.
+
+*/
+!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b){"use strict";function c(){try{return new window.XMLHttpRequest}catch(a){}}function d(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}}var e={};e._getBinaryFromXHR=function(a){return a.response||a.responseText};var f=window.ActiveXObject?function(){return c()||d()}:c;e.getBinaryContent=function(a,b){try{var c=f();c.open("GET",a,!0),"responseType"in c&&(c.responseType="arraybuffer"),c.overrideMimeType&&c.overrideMimeType("text/plain; charset=x-user-defined"),c.onreadystatechange=function(){var d,f;if(4===c.readyState)if(200===c.status||0===c.status){d=null,f=null;try{d=e._getBinaryFromXHR(c)}catch(g){f=new Error(g)}b(f,d)}else b(new Error("Ajax error for "+a+" : "+this.status+" "+this.statusText),null)},c.send()}catch(d){b(new Error(d),null)}},b.exports=e},{}]},{},[1])(1)});
diff --git a/apidocs/2.1.6/jquery/jszip/dist/jszip.js b/apidocs/2.1.6/jquery/jszip/dist/jszip.js
new file mode 100644
index 0000000..02804cd
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jszip/dist/jszip.js
@@ -0,0 +1,11623 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+
+(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var support = require('./support');
+// private property
+var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+
+// public method for encoding
+exports.encode = function(input) {
+    var output = [];
+    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
+    var i = 0, len = input.length, remainingBytes = len;
+
+    var isArray = utils.getTypeOf(input) !== "string";
+    while (i < input.length) {
+        remainingBytes = len - i;
+
+        if (!isArray) {
+            chr1 = input.charCodeAt(i++);
+            chr2 = i < len ? input.charCodeAt(i++) : 0;
+            chr3 = i < len ? input.charCodeAt(i++) : 0;
+        } else {
+            chr1 = input[i++];
+            chr2 = i < len ? input[i++] : 0;
+            chr3 = i < len ? input[i++] : 0;
+        }
+
+        enc1 = chr1 >> 2;
+        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+        enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;
+        enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;
+
+        output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));
+
+    }
+
+    return output.join("");
+};
+
+// public method for decoding
+exports.decode = function(input) {
+    var chr1, chr2, chr3;
+    var enc1, enc2, enc3, enc4;
+    var i = 0, resultIndex = 0;
+
+    var dataUrlPrefix = "data:";
+
+    if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {
+        // This is a common error: people give a data url
+        // (data:image/png;base64,iVBOR...) with a {base64: true} and
+        // wonders why things don't work.
+        // We can detect that the string input looks like a data url but we
+        // *can't* be sure it is one: removing everything up to the comma would
+        // be too dangerous.
+        throw new Error("Invalid base64 input, it looks like a data url.");
+    }
+
+    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+
+    var totalLength = input.length * 3 / 4;
+    if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {
+        totalLength--;
+    }
+    if (totalLength % 1 !== 0) {
+        // totalLength is not an integer, the length does not match a valid
+        // base64 content. That can happen if:
+        // - the input is not a base64 content
+        // - the input is *almost* a base64 content, with a extra chars at the
+        //   beginning or at the end
+        // - the input uses a base64 variant (base64url for example)
+        throw new Error("Invalid base64 input, bad content length.");
+    }
+    var output;
+    if (support.uint8array) {
+        output = new Uint8Array(totalLength|0);
+    } else {
+        output = new Array(totalLength|0);
+    }
+
+    while (i < input.length) {
+
+        enc1 = _keyStr.indexOf(input.charAt(i++));
+        enc2 = _keyStr.indexOf(input.charAt(i++));
+        enc3 = _keyStr.indexOf(input.charAt(i++));
+        enc4 = _keyStr.indexOf(input.charAt(i++));
+
+        chr1 = (enc1 << 2) | (enc2 >> 4);
+        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+        chr3 = ((enc3 & 3) << 6) | enc4;
+
+        output[resultIndex++] = chr1;
+
+        if (enc3 !== 64) {
+            output[resultIndex++] = chr2;
+        }
+        if (enc4 !== 64) {
+            output[resultIndex++] = chr3;
+        }
+
+    }
+
+    return output;
+};
+
+},{"./support":30,"./utils":32}],2:[function(require,module,exports){
+'use strict';
+
+var external = require("./external");
+var DataWorker = require('./stream/DataWorker');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+var Crc32Probe = require('./stream/Crc32Probe');
+var DataLengthProbe = require('./stream/DataLengthProbe');
+
+/**
+ * Represent a compressed object, with everything needed to decompress it.
+ * @constructor
+ * @param {number} compressedSize the size of the data compressed.
+ * @param {number} uncompressedSize the size of the data after decompression.
+ * @param {number} crc32 the crc32 of the decompressed file.
+ * @param {object} compression the type of compression, see lib/compressions.js.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.
+ */
+function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) {
+    this.compressedSize = compressedSize;
+    this.uncompressedSize = uncompressedSize;
+    this.crc32 = crc32;
+    this.compression = compression;
+    this.compressedContent = data;
+}
+
+CompressedObject.prototype = {
+    /**
+     * Create a worker to get the uncompressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getContentWorker : function () {
+        var worker = new DataWorker(external.Promise.resolve(this.compressedContent))
+        .pipe(this.compression.uncompressWorker())
+        .pipe(new DataLengthProbe("data_length"));
+
+        var that = this;
+        worker.on("end", function () {
+            if(this.streamInfo['data_length'] !== that.uncompressedSize) {
+                throw new Error("Bug : uncompressed data size mismatch");
+            }
+        });
+        return worker;
+    },
+    /**
+     * Create a worker to get the compressed content.
+     * @return {GenericWorker} the worker.
+     */
+    getCompressedWorker : function () {
+        return new DataWorker(external.Promise.resolve(this.compressedContent))
+        .withStreamInfo("compressedSize", this.compressedSize)
+        .withStreamInfo("uncompressedSize", this.uncompressedSize)
+        .withStreamInfo("crc32", this.crc32)
+        .withStreamInfo("compression", this.compression)
+        ;
+    }
+};
+
+/**
+ * Chain the given worker with other workers to compress the content with the
+ * given compresion.
+ * @param {GenericWorker} uncompressedWorker the worker to pipe.
+ * @param {Object} compression the compression object.
+ * @param {Object} compressionOptions the options to use when compressing.
+ * @return {GenericWorker} the new worker compressing the content.
+ */
+CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {
+    return uncompressedWorker
+    .pipe(new Crc32Probe())
+    .pipe(new DataLengthProbe("uncompressedSize"))
+    .pipe(compression.compressWorker(compressionOptions))
+    .pipe(new DataLengthProbe("compressedSize"))
+    .withStreamInfo("compression", compression);
+};
+
+module.exports = CompressedObject;
+
+},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require("./stream/GenericWorker");
+
+exports.STORE = {
+    magic: "\x00\x00",
+    compressWorker : function (compressionOptions) {
+        return new GenericWorker("STORE compression");
+    },
+    uncompressWorker : function () {
+        return new GenericWorker("STORE decompression");
+    }
+};
+exports.DEFLATE = require('./flate');
+
+},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+
+/**
+ * The following functions come from pako, from pako/lib/zlib/crc32.js
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+    var c, table = [];
+
+    for(var n =0; n < 256; n++){
+        c = n;
+        for(var k =0; k < 8; k++){
+            c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+        }
+        table[n] = c;
+    }
+
+    return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+// That's all for the pako functions.
+
+/**
+ * Compute the crc32 of a string.
+ * This is almost the same as the function crc32, but for strings. Using the
+ * same function for the two use cases leads to horrible performances.
+ * @param {Number} crc the starting value of the crc.
+ * @param {String} str the string to use.
+ * @param {Number} len the length of the string.
+ * @param {Number} pos the starting position for the crc32 computation.
+ * @return {Number} the computed crc32.
+ */
+function crc32str(crc, str, len, pos) {
+    var t = crcTable, end = pos + len;
+
+    crc = crc ^ (-1);
+
+    for (var i = pos; i < end; i++ ) {
+        crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];
+    }
+
+    return (crc ^ (-1)); // >>> 0;
+}
+
+module.exports = function crc32wrapper(input, crc) {
+    if (typeof input === "undefined" || !input.length) {
+        return 0;
+    }
+
+    var isArray = utils.getTypeOf(input) !== "string";
+
+    if(isArray) {
+        return crc32(crc|0, input, input.length, 0);
+    } else {
+        return crc32str(crc|0, input, input.length, 0);
+    }
+};
+
+},{"./utils":32}],5:[function(require,module,exports){
+'use strict';
+exports.base64 = false;
+exports.binary = false;
+exports.dir = false;
+exports.createFolders = true;
+exports.date = null;
+exports.compression = null;
+exports.compressionOptions = null;
+exports.comment = null;
+exports.unixPermissions = null;
+exports.dosPermissions = null;
+
+},{}],6:[function(require,module,exports){
+/* global Promise */
+'use strict';
+
+// load the global object first:
+// - it should be better integrated in the system (unhandledRejection in node)
+// - the environment may have a custom Promise implementation (see zone.js)
+var ES6Promise = null;
+if (typeof Promise !== "undefined") {
+    ES6Promise = Promise;
+} else {
+    ES6Promise = require("lie");
+}
+
+/**
+ * Let the user use/change some implementations.
+ */
+module.exports = {
+    Promise: ES6Promise
+};
+
+},{"lie":58}],7:[function(require,module,exports){
+'use strict';
+var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');
+
+var pako = require("pako");
+var utils = require("./utils");
+var GenericWorker = require("./stream/GenericWorker");
+
+var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array";
+
+exports.magic = "\x08\x00";
+
+/**
+ * Create a worker that uses pako to inflate/deflate.
+ * @constructor
+ * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate".
+ * @param {Object} options the options to use when (de)compressing.
+ */
+function FlateWorker(action, options) {
+    GenericWorker.call(this, "FlateWorker/" + action);
+
+    this._pako = null;
+    this._pakoAction = action;
+    this._pakoOptions = options;
+    // the `meta` object from the last chunk received
+    // this allow this worker to pass around metadata
+    this.meta = {};
+}
+
+utils.inherits(FlateWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+FlateWorker.prototype.processChunk = function (chunk) {
+    this.meta = chunk.meta;
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false);
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+FlateWorker.prototype.flush = function () {
+    GenericWorker.prototype.flush.call(this);
+    if (this._pako === null) {
+        this._createPako();
+    }
+    this._pako.push([], true);
+};
+/**
+ * @see GenericWorker.cleanUp
+ */
+FlateWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this._pako = null;
+};
+
+/**
+ * Create the _pako object.
+ * TODO: lazy-loading this object isn't the best solution but it's the
+ * quickest. The best solution is to lazy-load the worker list. See also the
+ * issue #446.
+ */
+FlateWorker.prototype._createPako = function () {
+    this._pako = new pako[this._pakoAction]({
+        raw: true,
+        level: this._pakoOptions.level || -1 // default compression
+    });
+    var self = this;
+    this._pako.onData = function(data) {
+        self.push({
+            data : data,
+            meta : self.meta
+        });
+    };
+};
+
+exports.compressWorker = function (compressionOptions) {
+    return new FlateWorker("Deflate", compressionOptions);
+};
+exports.uncompressWorker = function () {
+    return new FlateWorker("Inflate", {});
+};
+
+},{"./stream/GenericWorker":28,"./utils":32,"pako":59}],8:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+var utf8 = require('../utf8');
+var crc32 = require('../crc32');
+var signature = require('../signature');
+
+/**
+ * Transform an integer into a string in hexadecimal.
+ * @private
+ * @param {number} dec the number to convert.
+ * @param {number} bytes the number of bytes to generate.
+ * @returns {string} the result.
+ */
+var decToHex = function(dec, bytes) {
+    var hex = "", i;
+    for (i = 0; i < bytes; i++) {
+        hex += String.fromCharCode(dec & 0xff);
+        dec = dec >>> 8;
+    }
+    return hex;
+};
+
+/**
+ * Generate the UNIX part of the external file attributes.
+ * @param {Object} unixPermissions the unix permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute :
+ *
+ * TTTTsstrwxrwxrwx0000000000ADVSHR
+ * ^^^^____________________________ file type, see zipinfo.c (UNX_*)
+ *     ^^^_________________________ setuid, setgid, sticky
+ *        ^^^^^^^^^________________ permissions
+ *                 ^^^^^^^^^^______ not used ?
+ *                           ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only
+ */
+var generateUnixExternalFileAttr = function (unixPermissions, isDir) {
+
+    var result = unixPermissions;
+    if (!unixPermissions) {
+        // I can't use octal values in strict mode, hence the hexa.
+        //  040775 => 0x41fd
+        // 0100664 => 0x81b4
+        result = isDir ? 0x41fd : 0x81b4;
+    }
+    return (result & 0xFFFF) << 16;
+};
+
+/**
+ * Generate the DOS part of the external file attributes.
+ * @param {Object} dosPermissions the dos permissions or null.
+ * @param {Boolean} isDir true if the entry is a directory, false otherwise.
+ * @return {Number} a 32 bit integer.
+ *
+ * Bit 0     Read-Only
+ * Bit 1     Hidden
+ * Bit 2     System
+ * Bit 3     Volume Label
+ * Bit 4     Directory
+ * Bit 5     Archive
+ */
+var generateDosExternalFileAttr = function (dosPermissions, isDir) {
+
+    // the dir flag is already set for compatibility
+    return (dosPermissions || 0)  & 0x3F;
+};
+
+/**
+ * Generate the various parts used in the construction of the final zip file.
+ * @param {Object} streamInfo the hash with informations about the compressed file.
+ * @param {Boolean} streamedContent is the content streamed ?
+ * @param {Boolean} streamingEnded is the stream finished ?
+ * @param {number} offset the current offset from the start of the zip file.
+ * @param {String} platform let's pretend we are this platform (change platform dependents fields)
+ * @param {Function} encodeFileName the function to encode the file name / comment.
+ * @return {Object} the zip parts.
+ */
+var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) {
+    var file = streamInfo['file'],
+    compression = streamInfo['compression'],
+    useCustomEncoding = encodeFileName !== utf8.utf8encode,
+    encodedFileName = utils.transformTo("string", encodeFileName(file.name)),
+    utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)),
+    comment = file.comment,
+    encodedComment = utils.transformTo("string", encodeFileName(comment)),
+    utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)),
+    useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,
+    useUTF8ForComment = utfEncodedComment.length !== comment.length,
+    dosTime,
+    dosDate,
+    extraFields = "",
+    unicodePathExtraField = "",
+    unicodeCommentExtraField = "",
+    dir = file.dir,
+    date = file.date;
+
+
+    var dataInfo = {
+        crc32 : 0,
+        compressedSize : 0,
+        uncompressedSize : 0
+    };
+
+    // if the content is streamed, the sizes/crc32 are only available AFTER
+    // the end of the stream.
+    if (!streamedContent || streamingEnded) {
+        dataInfo.crc32 = streamInfo['crc32'];
+        dataInfo.compressedSize = streamInfo['compressedSize'];
+        dataInfo.uncompressedSize = streamInfo['uncompressedSize'];
+    }
+
+    var bitflag = 0;
+    if (streamedContent) {
+        // Bit 3: the sizes/crc32 are set to zero in the local header.
+        // The correct values are put in the data descriptor immediately
+        // following the compressed data.
+        bitflag |= 0x0008;
+    }
+    if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) {
+        // Bit 11: Language encoding flag (EFS).
+        bitflag |= 0x0800;
+    }
+
+
+    var extFileAttr = 0;
+    var versionMadeBy = 0;
+    if (dir) {
+        // dos or unix, we set the dos dir flag
+        extFileAttr |= 0x00010;
+    }
+    if(platform === "UNIX") {
+        versionMadeBy = 0x031E; // UNIX, version 3.0
+        extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir);
+    } else { // DOS or other, fallback to DOS
+        versionMadeBy = 0x0014; // DOS, version 2.0
+        extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir);
+    }
+
+    // date
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html
+    // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html
+
+    dosTime = date.getUTCHours();
+    dosTime = dosTime << 6;
+    dosTime = dosTime | date.getUTCMinutes();
+    dosTime = dosTime << 5;
+    dosTime = dosTime | date.getUTCSeconds() / 2;
+
+    dosDate = date.getUTCFullYear() - 1980;
+    dosDate = dosDate << 4;
+    dosDate = dosDate | (date.getUTCMonth() + 1);
+    dosDate = dosDate << 5;
+    dosDate = dosDate | date.getUTCDate();
+
+    if (useUTF8ForFileName) {
+        // set the unicode path extra field. unzip needs at least one extra
+        // field to correctly handle unicode path, so using the path is as good
+        // as any other information. This could improve the situation with
+        // other archive managers too.
+        // This field is usually used without the utf8 flag, with a non
+        // unicode path in the header (winrar, winzip). This helps (a bit)
+        // with the messy Windows' default compressed folders feature but
+        // breaks on p7zip which doesn't seek the unicode path extra field.
+        // So for now, UTF-8 everywhere !
+        unicodePathExtraField =
+            // Version
+            decToHex(1, 1) +
+            // NameCRC32
+            decToHex(crc32(encodedFileName), 4) +
+            // UnicodeName
+            utfEncodedFileName;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x70" +
+            // size
+            decToHex(unicodePathExtraField.length, 2) +
+            // content
+            unicodePathExtraField;
+    }
+
+    if(useUTF8ForComment) {
+
+        unicodeCommentExtraField =
+            // Version
+            decToHex(1, 1) +
+            // CommentCRC32
+            decToHex(crc32(encodedComment), 4) +
+            // UnicodeName
+            utfEncodedComment;
+
+        extraFields +=
+            // Info-ZIP Unicode Path Extra Field
+            "\x75\x63" +
+            // size
+            decToHex(unicodeCommentExtraField.length, 2) +
+            // content
+            unicodeCommentExtraField;
+    }
+
+    var header = "";
+
+    // version needed to extract
+    header += "\x0A\x00";
+    // general purpose bit flag
+    header += decToHex(bitflag, 2);
+    // compression method
+    header += compression.magic;
+    // last mod file time
+    header += decToHex(dosTime, 2);
+    // last mod file date
+    header += decToHex(dosDate, 2);
+    // crc-32
+    header += decToHex(dataInfo.crc32, 4);
+    // compressed size
+    header += decToHex(dataInfo.compressedSize, 4);
+    // uncompressed size
+    header += decToHex(dataInfo.uncompressedSize, 4);
+    // file name length
+    header += decToHex(encodedFileName.length, 2);
+    // extra field length
+    header += decToHex(extraFields.length, 2);
+
+
+    var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields;
+
+    var dirRecord = signature.CENTRAL_FILE_HEADER +
+        // version made by (00: DOS)
+        decToHex(versionMadeBy, 2) +
+        // file header (common to file and central directory)
+        header +
+        // file comment length
+        decToHex(encodedComment.length, 2) +
+        // disk number start
+        "\x00\x00" +
+        // internal file attributes TODO
+        "\x00\x00" +
+        // external file attributes
+        decToHex(extFileAttr, 4) +
+        // relative offset of local header
+        decToHex(offset, 4) +
+        // file name
+        encodedFileName +
+        // extra field
+        extraFields +
+        // file comment
+        encodedComment;
+
+    return {
+        fileRecord: fileRecord,
+        dirRecord: dirRecord
+    };
+};
+
+/**
+ * Generate the EOCD record.
+ * @param {Number} entriesCount the number of entries in the zip file.
+ * @param {Number} centralDirLength the length (in bytes) of the central dir.
+ * @param {Number} localDirLength the length (in bytes) of the local dir.
+ * @param {String} comment the zip file comment as a binary string.
+ * @param {Function} encodeFileName the function to encode the comment.
+ * @return {String} the EOCD record.
+ */
+var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) {
+    var dirEnd = "";
+    var encodedComment = utils.transformTo("string", encodeFileName(comment));
+
+    // end of central dir signature
+    dirEnd = signature.CENTRAL_DIRECTORY_END +
+        // number of this disk
+        "\x00\x00" +
+        // number of the disk with the start of the central directory
+        "\x00\x00" +
+        // total number of entries in the central directory on this disk
+        decToHex(entriesCount, 2) +
+        // total number of entries in the central directory
+        decToHex(entriesCount, 2) +
+        // size of the central directory   4 bytes
+        decToHex(centralDirLength, 4) +
+        // offset of start of central directory with respect to the starting disk number
+        decToHex(localDirLength, 4) +
+        // .ZIP file comment length
+        decToHex(encodedComment.length, 2) +
+        // .ZIP file comment
+        encodedComment;
+
+    return dirEnd;
+};
+
+/**
+ * Generate data descriptors for a file entry.
+ * @param {Object} streamInfo the hash generated by a worker, containing informations
+ * on the file entry.
+ * @return {String} the data descriptors.
+ */
+var generateDataDescriptors = function (streamInfo) {
+    var descriptor = "";
+    descriptor = signature.DATA_DESCRIPTOR +
+        // crc-32                          4 bytes
+        decToHex(streamInfo['crc32'], 4) +
+        // compressed size                 4 bytes
+        decToHex(streamInfo['compressedSize'], 4) +
+        // uncompressed size               4 bytes
+        decToHex(streamInfo['uncompressedSize'], 4);
+
+    return descriptor;
+};
+
+
+/**
+ * A worker to concatenate other workers to create a zip file.
+ * @param {Boolean} streamFiles `true` to stream the content of the files,
+ * `false` to accumulate it.
+ * @param {String} comment the comment to use.
+ * @param {String} platform the platform to use, "UNIX" or "DOS".
+ * @param {Function} encodeFileName the function to encode file names and comments.
+ */
+function ZipFileWorker(streamFiles, comment, platform, encodeFileName) {
+    GenericWorker.call(this, "ZipFileWorker");
+    // The number of bytes written so far. This doesn't count accumulated chunks.
+    this.bytesWritten = 0;
+    // The comment of the zip file
+    this.zipComment = comment;
+    // The platform "generating" the zip file.
+    this.zipPlatform = platform;
+    // the function to encode file names and comments.
+    this.encodeFileName = encodeFileName;
+    // Should we stream the content of the files ?
+    this.streamFiles = streamFiles;
+    // If `streamFiles` is false, we will need to accumulate the content of the
+    // files to calculate sizes / crc32 (and write them *before* the content).
+    // This boolean indicates if we are accumulating chunks (it will change a lot
+    // during the lifetime of this worker).
+    this.accumulate = false;
+    // The buffer receiving chunks when accumulating content.
+    this.contentBuffer = [];
+    // The list of generated directory records.
+    this.dirRecords = [];
+    // The offset (in bytes) from the beginning of the zip file for the current source.
+    this.currentSourceOffset = 0;
+    // The total number of entries in this zip file.
+    this.entriesCount = 0;
+    // the name of the file currently being added, null when handling the end of the zip file.
+    // Used for the emited metadata.
+    this.currentFile = null;
+
+
+
+    this._sources = [];
+}
+utils.inherits(ZipFileWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.push
+ */
+ZipFileWorker.prototype.push = function (chunk) {
+
+    var currentFilePercent = chunk.meta.percent || 0;
+    var entriesCount = this.entriesCount;
+    var remainingFiles = this._sources.length;
+
+    if(this.accumulate) {
+        this.contentBuffer.push(chunk);
+    } else {
+        this.bytesWritten += chunk.data.length;
+
+        GenericWorker.prototype.push.call(this, {
+            data : chunk.data,
+            meta : {
+                currentFile : this.currentFile,
+                percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100
+            }
+        });
+    }
+};
+
+/**
+ * The worker started a new source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the new source.
+ */
+ZipFileWorker.prototype.openedSource = function (streamInfo) {
+    this.currentSourceOffset = this.bytesWritten;
+    this.currentFile = streamInfo['file'].name;
+
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+
+    // don't stream folders (because they don't have any content)
+    if(streamedContent) {
+        var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+    } else {
+        // we need to wait for the whole file before pushing anything
+        this.accumulate = true;
+    }
+};
+
+/**
+ * The worker finished a source (an other worker).
+ * @param {Object} streamInfo the streamInfo object from the finished source.
+ */
+ZipFileWorker.prototype.closedSource = function (streamInfo) {
+    this.accumulate = false;
+    var streamedContent = this.streamFiles && !streamInfo['file'].dir;
+    var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName);
+
+    this.dirRecords.push(record.dirRecord);
+    if(streamedContent) {
+        // after the streamed file, we put data descriptors
+        this.push({
+            data : generateDataDescriptors(streamInfo),
+            meta : {percent:100}
+        });
+    } else {
+        // the content wasn't streamed, we need to push everything now
+        // first the file record, then the content
+        this.push({
+            data : record.fileRecord,
+            meta : {percent:0}
+        });
+        while(this.contentBuffer.length) {
+            this.push(this.contentBuffer.shift());
+        }
+    }
+    this.currentFile = null;
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+ZipFileWorker.prototype.flush = function () {
+
+    var localDirLength = this.bytesWritten;
+    for(var i = 0; i < this.dirRecords.length; i++) {
+        this.push({
+            data : this.dirRecords[i],
+            meta : {percent:100}
+        });
+    }
+    var centralDirLength = this.bytesWritten - localDirLength;
+
+    var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName);
+
+    this.push({
+        data : dirEnd,
+        meta : {percent:100}
+    });
+};
+
+/**
+ * Prepare the next source to be read.
+ */
+ZipFileWorker.prototype.prepareNextSource = function () {
+    this.previous = this._sources.shift();
+    this.openedSource(this.previous.streamInfo);
+    if (this.isPaused) {
+        this.previous.pause();
+    } else {
+        this.previous.resume();
+    }
+};
+
+/**
+ * @see GenericWorker.registerPrevious
+ */
+ZipFileWorker.prototype.registerPrevious = function (previous) {
+    this._sources.push(previous);
+    var self = this;
+
+    previous.on('data', function (chunk) {
+        self.processChunk(chunk);
+    });
+    previous.on('end', function () {
+        self.closedSource(self.previous.streamInfo);
+        if(self._sources.length) {
+            self.prepareNextSource();
+        } else {
+            self.end();
+        }
+    });
+    previous.on('error', function (e) {
+        self.error(e);
+    });
+    return this;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+ZipFileWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this.previous && this._sources.length) {
+        this.prepareNextSource();
+        return true;
+    }
+    if (!this.previous && !this._sources.length && !this.generatedError) {
+        this.end();
+        return true;
+    }
+};
+
+/**
+ * @see GenericWorker.error
+ */
+ZipFileWorker.prototype.error = function (e) {
+    var sources = this._sources;
+    if(!GenericWorker.prototype.error.call(this, e)) {
+        return false;
+    }
+    for(var i = 0; i < sources.length; i++) {
+        try {
+            sources[i].error(e);
+        } catch(e) {
+            // the `error` exploded, nothing to do
+        }
+    }
+    return true;
+};
+
+/**
+ * @see GenericWorker.lock
+ */
+ZipFileWorker.prototype.lock = function () {
+    GenericWorker.prototype.lock.call(this);
+    var sources = this._sources;
+    for(var i = 0; i < sources.length; i++) {
+        sources[i].lock();
+    }
+};
+
+module.exports = ZipFileWorker;
+
+},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){
+'use strict';
+
+var compressions = require('../compressions');
+var ZipFileWorker = require('./ZipFileWorker');
+
+/**
+ * Find the compression to use.
+ * @param {String} fileCompression the compression defined at the file level, if any.
+ * @param {String} zipCompression the compression defined at the load() level.
+ * @return {Object} the compression object to use.
+ */
+var getCompression = function (fileCompression, zipCompression) {
+
+    var compressionName = fileCompression || zipCompression;
+    var compression = compressions[compressionName];
+    if (!compression) {
+        throw new Error(compressionName + " is not a valid compression method !");
+    }
+    return compression;
+};
+
+/**
+ * Create a worker to generate a zip file.
+ * @param {JSZip} zip the JSZip instance at the right root level.
+ * @param {Object} options to generate the zip file.
+ * @param {String} comment the comment to use.
+ */
+exports.generateWorker = function (zip, options, comment) {
+
+    var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName);
+    var entriesCount = 0;
+    try {
+
+        zip.forEach(function (relativePath, file) {
+            entriesCount++;
+            var compression = getCompression(file.options.compression, options.compression);
+            var compressionOptions = file.options.compressionOptions || options.compressionOptions || {};
+            var dir = file.dir, date = file.date;
+
+            file._compressWorker(compression, compressionOptions)
+            .withStreamInfo("file", {
+                name : relativePath,
+                dir : dir,
+                date : date,
+                comment : file.comment || "",
+                unixPermissions : file.unixPermissions,
+                dosPermissions : file.dosPermissions
+            })
+            .pipe(zipFileWorker);
+        });
+        zipFileWorker.entriesCount = entriesCount;
+    } catch (e) {
+        zipFileWorker.error(e);
+    }
+
+    return zipFileWorker;
+};
+
+},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){
+'use strict';
+
+/**
+ * Representation a of zip file in js
+ * @constructor
+ */
+function JSZip() {
+    // if this constructor is used without `new`, it adds `new` before itself:
+    if(!(this instanceof JSZip)) {
+        return new JSZip();
+    }
+
+    if(arguments.length) {
+        throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");
+    }
+
+    // object containing the files :
+    // {
+    //   "folder/" : {...},
+    //   "folder/data.txt" : {...}
+    // }
+    this.files = {};
+
+    this.comment = null;
+
+    // Where we are in the hierarchy
+    this.root = "";
+    this.clone = function() {
+        var newObj = new JSZip();
+        for (var i in this) {
+            if (typeof this[i] !== "function") {
+                newObj[i] = this[i];
+            }
+        }
+        return newObj;
+    };
+}
+JSZip.prototype = require('./object');
+JSZip.prototype.loadAsync = require('./load');
+JSZip.support = require('./support');
+JSZip.defaults = require('./defaults');
+
+// TODO find a better way to handle this version,
+// a require('package.json').version doesn't work with webpack, see #327
+JSZip.version = "3.1.5";
+
+JSZip.loadAsync = function (content, options) {
+    return new JSZip().loadAsync(content, options);
+};
+
+JSZip.external = require("./external");
+module.exports = JSZip;
+
+},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){
+'use strict';
+var utils = require('./utils');
+var external = require("./external");
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var ZipEntries = require('./zipEntries');
+var Crc32Probe = require('./stream/Crc32Probe');
+var nodejsUtils = require("./nodejsUtils");
+
+/**
+ * Check the CRC32 of an entry.
+ * @param {ZipEntry} zipEntry the zip entry to check.
+ * @return {Promise} the result.
+ */
+function checkEntryCRC32(zipEntry) {
+    return new external.Promise(function (resolve, reject) {
+        var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe());
+        worker.on("error", function (e) {
+            reject(e);
+        })
+        .on("end", function () {
+            if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) {
+                reject(new Error("Corrupted zip : CRC32 mismatch"));
+            } else {
+                resolve();
+            }
+        })
+        .resume();
+    });
+}
+
+module.exports = function(data, options) {
+    var zip = this;
+    options = utils.extend(options || {}, {
+        base64: false,
+        checkCRC32: false,
+        optimizedBinaryString: false,
+        createFolders: false,
+        decodeFileName: utf8.utf8decode
+    });
+
+    if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file."));
+    }
+
+    return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64)
+    .then(function(data) {
+        var zipEntries = new ZipEntries(options);
+        zipEntries.load(data);
+        return zipEntries;
+    }).then(function checkCRC32(zipEntries) {
+        var promises = [external.Promise.resolve(zipEntries)];
+        var files = zipEntries.files;
+        if (options.checkCRC32) {
+            for (var i = 0; i < files.length; i++) {
+                promises.push(checkEntryCRC32(files[i]));
+            }
+        }
+        return external.Promise.all(promises);
+    }).then(function addFiles(results) {
+        var zipEntries = results.shift();
+        var files = zipEntries.files;
+        for (var i = 0; i < files.length; i++) {
+            var input = files[i];
+            zip.file(input.fileNameStr, input.decompressed, {
+                binary: true,
+                optimizedBinaryString: true,
+                date: input.date,
+                dir: input.dir,
+                comment : input.fileCommentStr.length ? input.fileCommentStr : null,
+                unixPermissions : input.unixPermissions,
+                dosPermissions : input.dosPermissions,
+                createFolders: options.createFolders
+            });
+        }
+        if (zipEntries.zipComment.length) {
+            zip.comment = zipEntries.zipComment;
+        }
+
+        return zip;
+    });
+};
+
+},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){
+"use strict";
+
+var utils = require('../utils');
+var GenericWorker = require('../stream/GenericWorker');
+
+/**
+ * A worker that use a nodejs stream as source.
+ * @constructor
+ * @param {String} filename the name of the file entry for this stream.
+ * @param {Readable} stream the nodejs stream.
+ */
+function NodejsStreamInputAdapter(filename, stream) {
+    GenericWorker.call(this, "Nodejs stream input adapter for " + filename);
+    this._upstreamEnded = false;
+    this._bindStream(stream);
+}
+
+utils.inherits(NodejsStreamInputAdapter, GenericWorker);
+
+/**
+ * Prepare the stream and bind the callbacks on it.
+ * Do this ASAP on node 0.10 ! A lazy binding doesn't always work.
+ * @param {Stream} stream the nodejs stream to use.
+ */
+NodejsStreamInputAdapter.prototype._bindStream = function (stream) {
+    var self = this;
+    this._stream = stream;
+    stream.pause();
+    stream
+    .on("data", function (chunk) {
+        self.push({
+            data: chunk,
+            meta : {
+                percent : 0
+            }
+        });
+    })
+    .on("error", function (e) {
+        if(self.isPaused) {
+            this.generatedError = e;
+        } else {
+            self.error(e);
+        }
+    })
+    .on("end", function () {
+        if(self.isPaused) {
+            self._upstreamEnded = true;
+        } else {
+            self.end();
+        }
+    });
+};
+NodejsStreamInputAdapter.prototype.pause = function () {
+    if(!GenericWorker.prototype.pause.call(this)) {
+        return false;
+    }
+    this._stream.pause();
+    return true;
+};
+NodejsStreamInputAdapter.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if(this._upstreamEnded) {
+        this.end();
+    } else {
+        this._stream.resume();
+    }
+
+    return true;
+};
+
+module.exports = NodejsStreamInputAdapter;
+
+},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){
+'use strict';
+
+var Readable = require('readable-stream').Readable;
+
+var utils = require('../utils');
+utils.inherits(NodejsStreamOutputAdapter, Readable);
+
+/**
+* A nodejs stream using a worker as source.
+* @see the SourceWrapper in http://nodejs.org/api/stream.html
+* @constructor
+* @param {StreamHelper} helper the helper wrapping the worker
+* @param {Object} options the nodejs stream options
+* @param {Function} updateCb the update callback.
+*/
+function NodejsStreamOutputAdapter(helper, options, updateCb) {
+    Readable.call(this, options);
+    this._helper = helper;
+
+    var self = this;
+    helper.on("data", function (data, meta) {
+        if (!self.push(data)) {
+            self._helper.pause();
+        }
+        if(updateCb) {
+            updateCb(meta);
+        }
+    })
+    .on("error", function(e) {
+        self.emit('error', e);
+    })
+    .on("end", function () {
+        self.push(null);
+    });
+}
+
+
+NodejsStreamOutputAdapter.prototype._read = function() {
+    this._helper.resume();
+};
+
+module.exports = NodejsStreamOutputAdapter;
+
+},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){
+'use strict';
+
+module.exports = {
+    /**
+     * True if this is running in Nodejs, will be undefined in a browser.
+     * In a browser, browserify won't include this file and the whole module
+     * will be resolved an empty object.
+     */
+    isNode : typeof Buffer !== "undefined",
+    /**
+     * Create a new nodejs Buffer from an existing content.
+     * @param {Object} data the data to pass to the constructor.
+     * @param {String} encoding the encoding to use.
+     * @return {Buffer} a new Buffer.
+     */
+    newBufferFrom: function(data, encoding) {
+        // XXX We can't use `Buffer.from` which comes from `Uint8Array.from`
+        // in nodejs v4 (< v.4.5). It's not the expected implementation (and
+        // has a different signature).
+        // see https://github.com/nodejs/node/issues/8053
+        // A condition on nodejs' version won't solve the issue as we don't
+        // control the Buffer polyfills that may or may not be used.
+        return new Buffer(data, encoding);
+    },
+    /**
+     * Create a new nodejs Buffer with the specified size.
+     * @param {Integer} size the size of the buffer.
+     * @return {Buffer} a new Buffer.
+     */
+    allocBuffer: function (size) {
+        if (Buffer.alloc) {
+            return Buffer.alloc(size);
+        } else {
+            return new Buffer(size);
+        }
+    },
+    /**
+     * Find out if an object is a Buffer.
+     * @param {Object} b the object to test.
+     * @return {Boolean} true if the object is a Buffer, false otherwise.
+     */
+    isBuffer : function(b){
+        return Buffer.isBuffer(b);
+    },
+
+    isStream : function (obj) {
+        return obj &&
+            typeof obj.on === "function" &&
+            typeof obj.pause === "function" &&
+            typeof obj.resume === "function";
+    }
+};
+
+},{}],15:[function(require,module,exports){
+'use strict';
+var utf8 = require('./utf8');
+var utils = require('./utils');
+var GenericWorker = require('./stream/GenericWorker');
+var StreamHelper = require('./stream/StreamHelper');
+var defaults = require('./defaults');
+var CompressedObject = require('./compressedObject');
+var ZipObject = require('./zipObject');
+var generate = require("./generate");
+var nodejsUtils = require("./nodejsUtils");
+var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter");
+
+
+/**
+ * Add a file in the current folder.
+ * @private
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file
+ * @param {Object} originalOptions the options of the file
+ * @return {Object} the new file.
+ */
+var fileAdd = function(name, data, originalOptions) {
+    // be sure sub folders exist
+    var dataType = utils.getTypeOf(data),
+        parent;
+
+
+    /*
+     * Correct options.
+     */
+
+    var o = utils.extend(originalOptions || {}, defaults);
+    o.date = o.date || new Date();
+    if (o.compression !== null) {
+        o.compression = o.compression.toUpperCase();
+    }
+
+    if (typeof o.unixPermissions === "string") {
+        o.unixPermissions = parseInt(o.unixPermissions, 8);
+    }
+
+    // UNX_IFDIR  0040000 see zipinfo.c
+    if (o.unixPermissions && (o.unixPermissions & 0x4000)) {
+        o.dir = true;
+    }
+    // Bit 4    Directory
+    if (o.dosPermissions && (o.dosPermissions & 0x0010)) {
+        o.dir = true;
+    }
+
+    if (o.dir) {
+        name = forceTrailingSlash(name);
+    }
+    if (o.createFolders && (parent = parentFolder(name))) {
+        folderAdd.call(this, parent, true);
+    }
+
+    var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false;
+    if (!originalOptions || typeof originalOptions.binary === "undefined") {
+        o.binary = !isUnicodeString;
+    }
+
+
+    var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0;
+
+    if (isCompressedEmpty || o.dir || !data || data.length === 0) {
+        o.base64 = false;
+        o.binary = true;
+        data = "";
+        o.compression = "STORE";
+        dataType = "string";
+    }
+
+    /*
+     * Convert content to fit.
+     */
+
+    var zipObjectContent = null;
+    if (data instanceof CompressedObject || data instanceof GenericWorker) {
+        zipObjectContent = data;
+    } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) {
+        zipObjectContent = new NodejsStreamInputAdapter(name, data);
+    } else {
+        zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64);
+    }
+
+    var object = new ZipObject(name, zipObjectContent, o);
+    this.files[name] = object;
+    /*
+    TODO: we can't throw an exception because we have async promises
+    (we can have a promise of a Date() for example) but returning a
+    promise is useless because file(name, data) returns the JSZip
+    object for chaining. Should we break that to allow the user
+    to catch the error ?
+
+    return external.Promise.resolve(zipObjectContent)
+    .then(function () {
+        return object;
+    });
+    */
+};
+
+/**
+ * Find the parent folder of the path.
+ * @private
+ * @param {string} path the path to use
+ * @return {string} the parent folder, or ""
+ */
+var parentFolder = function (path) {
+    if (path.slice(-1) === '/') {
+        path = path.substring(0, path.length - 1);
+    }
+    var lastSlash = path.lastIndexOf('/');
+    return (lastSlash > 0) ? path.substring(0, lastSlash) : "";
+};
+
+/**
+ * Returns the path with a slash at the end.
+ * @private
+ * @param {String} path the path to check.
+ * @return {String} the path with a trailing slash.
+ */
+var forceTrailingSlash = function(path) {
+    // Check the name ends with a /
+    if (path.slice(-1) !== "/") {
+        path += "/"; // IE doesn't like substr(-1)
+    }
+    return path;
+};
+
+/**
+ * Add a (sub) folder in the current folder.
+ * @private
+ * @param {string} name the folder's name
+ * @param {boolean=} [createFolders] If true, automatically create sub
+ *  folders. Defaults to false.
+ * @return {Object} the new folder.
+ */
+var folderAdd = function(name, createFolders) {
+    createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders;
+
+    name = forceTrailingSlash(name);
+
+    // Does this folder already exist?
+    if (!this.files[name]) {
+        fileAdd.call(this, name, null, {
+            dir: true,
+            createFolders: createFolders
+        });
+    }
+    return this.files[name];
+};
+
+/**
+* Cross-window, cross-Node-context regular expression detection
+* @param  {Object}  object Anything
+* @return {Boolean}        true if the object is a regular expression,
+* false otherwise
+*/
+function isRegExp(object) {
+    return Object.prototype.toString.call(object) === "[object RegExp]";
+}
+
+// return the actual prototype of JSZip
+var out = {
+    /**
+     * @see loadAsync
+     */
+    load: function() {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+
+    /**
+     * Call a callback function for each entry at this folder level.
+     * @param {Function} cb the callback function:
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     */
+    forEach: function(cb) {
+        var filename, relativePath, file;
+        for (filename in this.files) {
+            if (!this.files.hasOwnProperty(filename)) {
+                continue;
+            }
+            file = this.files[filename];
+            relativePath = filename.slice(this.root.length, filename.length);
+            if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root
+                cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn...
+            }
+        }
+    },
+
+    /**
+     * Filter nested files/folders with the specified function.
+     * @param {Function} search the predicate to use :
+     * function (relativePath, file) {...}
+     * It takes 2 arguments : the relative path and the file.
+     * @return {Array} An array of matching elements.
+     */
+    filter: function(search) {
+        var result = [];
+        this.forEach(function (relativePath, entry) {
+            if (search(relativePath, entry)) { // the file matches the function
+                result.push(entry);
+            }
+
+        });
+        return result;
+    },
+
+    /**
+     * Add a file to the zip file, or search a file.
+     * @param   {string|RegExp} name The name of the file to add (if data is defined),
+     * the name of the file to find (if no data) or a regex to match files.
+     * @param   {String|ArrayBuffer|Uint8Array|Buffer} data  The file data, either raw or base64 encoded
+     * @param   {Object} o     File options
+     * @return  {JSZip|Object|Array} this JSZip object (when adding a file),
+     * a file (when searching by string) or an array of files (when searching by regex).
+     */
+    file: function(name, data, o) {
+        if (arguments.length === 1) {
+            if (isRegExp(name)) {
+                var regexp = name;
+                return this.filter(function(relativePath, file) {
+                    return !file.dir && regexp.test(relativePath);
+                });
+            }
+            else { // text
+                var obj = this.files[this.root + name];
+                if (obj && !obj.dir) {
+                    return obj;
+                } else {
+                    return null;
+                }
+            }
+        }
+        else { // more than one argument : we have data !
+            name = this.root + name;
+            fileAdd.call(this, name, data, o);
+        }
+        return this;
+    },
+
+    /**
+     * Add a directory to the zip file, or search.
+     * @param   {String|RegExp} arg The name of the directory to add, or a regex to search folders.
+     * @return  {JSZip} an object with the new directory as the root, or an array containing matching folders.
+     */
+    folder: function(arg) {
+        if (!arg) {
+            return this;
+        }
+
+        if (isRegExp(arg)) {
+            return this.filter(function(relativePath, file) {
+                return file.dir && arg.test(relativePath);
+            });
+        }
+
+        // else, name is a new folder
+        var name = this.root + arg;
+        var newFolder = folderAdd.call(this, name);
+
+        // Allow chaining by returning a new object with this folder as the root
+        var ret = this.clone();
+        ret.root = newFolder.name;
+        return ret;
+    },
+
+    /**
+     * Delete a file, or a directory and all sub-files, from the zip
+     * @param {string} name the name of the file to delete
+     * @return {JSZip} this JSZip object
+     */
+    remove: function(name) {
+        name = this.root + name;
+        var file = this.files[name];
+        if (!file) {
+            // Look for any folders
+            if (name.slice(-1) !== "/") {
+                name += "/";
+            }
+            file = this.files[name];
+        }
+
+        if (file && !file.dir) {
+            // file
+            delete this.files[name];
+        } else {
+            // maybe a folder, delete recursively
+            var kids = this.filter(function(relativePath, file) {
+                return file.name.slice(0, name.length) === name;
+            });
+            for (var i = 0; i < kids.length; i++) {
+                delete this.files[kids[i].name];
+            }
+        }
+
+        return this;
+    },
+
+    /**
+     * Generate the complete zip file
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file
+     */
+    generate: function(options) {
+        throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+    },
+
+    /**
+     * Generate the complete zip file as an internal stream.
+     * @param {Object} options the options to generate the zip file :
+     * - compression, "STORE" by default.
+     * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob.
+     * @return {StreamHelper} the streamed zip file.
+     */
+    generateInternalStream: function(options) {
+      var worker, opts = {};
+      try {
+          opts = utils.extend(options || {}, {
+              streamFiles: false,
+              compression: "STORE",
+              compressionOptions : null,
+              type: "",
+              platform: "DOS",
+              comment: null,
+              mimeType: 'application/zip',
+              encodeFileName: utf8.utf8encode
+          });
+
+          opts.type = opts.type.toLowerCase();
+          opts.compression = opts.compression.toUpperCase();
+
+          // "binarystring" is prefered but the internals use "string".
+          if(opts.type === "binarystring") {
+            opts.type = "string";
+          }
+
+          if (!opts.type) {
+            throw new Error("No output type specified.");
+          }
+
+          utils.checkSupport(opts.type);
+
+          // accept nodejs `process.platform`
+          if(
+              opts.platform === 'darwin' ||
+              opts.platform === 'freebsd' ||
+              opts.platform === 'linux' ||
+              opts.platform === 'sunos'
+          ) {
+              opts.platform = "UNIX";
+          }
+          if (opts.platform === 'win32') {
+              opts.platform = "DOS";
+          }
+
+          var comment = opts.comment || this.comment || "";
+          worker = generate.generateWorker(this, opts, comment);
+      } catch (e) {
+        worker = new GenericWorker("error");
+        worker.error(e);
+      }
+      return new StreamHelper(worker, opts.type || "string", opts.mimeType);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateAsync: function(options, onUpdate) {
+        return this.generateInternalStream(options).accumulate(onUpdate);
+    },
+    /**
+     * Generate the complete zip file asynchronously.
+     * @see generateInternalStream
+     */
+    generateNodeStream: function(options, onUpdate) {
+        options = options || {};
+        if (!options.type) {
+            options.type = "nodebuffer";
+        }
+        return this.generateInternalStream(options).toNodejsStream(onUpdate);
+    }
+};
+module.exports = out;
+
+},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){
+/*
+ * This file is used by module bundlers (browserify/webpack/etc) when
+ * including a stream implementation. We use "readable-stream" to get a
+ * consistent behavior between nodejs versions but bundlers often have a shim
+ * for "stream". Using this shim greatly improve the compatibility and greatly
+ * reduce the final size of the bundle (only one stream implementation, not
+ * two).
+ */
+module.exports = require("stream");
+
+},{"stream":undefined}],17:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function ArrayReader(data) {
+    DataReader.call(this, data);
+	for(var i = 0; i < this.data.length; i++) {
+		data[i] = data[i] & 0xFF;
+	}
+}
+utils.inherits(ArrayReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+ArrayReader.prototype.byteAt = function(i) {
+    return this.data[this.zero + i];
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+ArrayReader.prototype.lastIndexOfSignature = function(sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3);
+    for (var i = this.length - 4; i >= 0; --i) {
+        if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {
+            return i - this.zero;
+        }
+    }
+
+    return -1;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+ArrayReader.prototype.readAndCheckSignature = function (sig) {
+    var sig0 = sig.charCodeAt(0),
+        sig1 = sig.charCodeAt(1),
+        sig2 = sig.charCodeAt(2),
+        sig3 = sig.charCodeAt(3),
+        data = this.readData(4);
+    return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];
+};
+/**
+ * @see DataReader.readData
+ */
+ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        return [];
+    }
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = ArrayReader;
+
+},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){
+'use strict';
+var utils = require('../utils');
+
+function DataReader(data) {
+    this.data = data; // type : see implementation
+    this.length = data.length;
+    this.index = 0;
+    this.zero = 0;
+}
+DataReader.prototype = {
+    /**
+     * Check that the offset will not go too far.
+     * @param {string} offset the additional offset to check.
+     * @throws {Error} an Error if the offset is out of bounds.
+     */
+    checkOffset: function(offset) {
+        this.checkIndex(this.index + offset);
+    },
+    /**
+     * Check that the specified index will not be too far.
+     * @param {string} newIndex the index to check.
+     * @throws {Error} an Error if the index is out of bounds.
+     */
+    checkIndex: function(newIndex) {
+        if (this.length < this.zero + newIndex || newIndex < 0) {
+            throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?");
+        }
+    },
+    /**
+     * Change the index.
+     * @param {number} newIndex The new index.
+     * @throws {Error} if the new index is out of the data.
+     */
+    setIndex: function(newIndex) {
+        this.checkIndex(newIndex);
+        this.index = newIndex;
+    },
+    /**
+     * Skip the next n bytes.
+     * @param {number} n the number of bytes to skip.
+     * @throws {Error} if the new index is out of the data.
+     */
+    skip: function(n) {
+        this.setIndex(this.index + n);
+    },
+    /**
+     * Get the byte at the specified index.
+     * @param {number} i the index to use.
+     * @return {number} a byte.
+     */
+    byteAt: function(i) {
+        // see implementations
+    },
+    /**
+     * Get the next number with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {number} the corresponding number.
+     */
+    readInt: function(size) {
+        var result = 0,
+            i;
+        this.checkOffset(size);
+        for (i = this.index + size - 1; i >= this.index; i--) {
+            result = (result << 8) + this.byteAt(i);
+        }
+        this.index += size;
+        return result;
+    },
+    /**
+     * Get the next string with a given byte size.
+     * @param {number} size the number of bytes to read.
+     * @return {string} the corresponding string.
+     */
+    readString: function(size) {
+        return utils.transformTo("string", this.readData(size));
+    },
+    /**
+     * Get raw data without conversion, <size> bytes.
+     * @param {number} size the number of bytes to read.
+     * @return {Object} the raw data, implementation specific.
+     */
+    readData: function(size) {
+        // see implementations
+    },
+    /**
+     * Find the last occurence of a zip signature (4 bytes).
+     * @param {string} sig the signature to find.
+     * @return {number} the index of the last occurence, -1 if not found.
+     */
+    lastIndexOfSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Read the signature (4 bytes) at the current position and compare it with sig.
+     * @param {string} sig the expected signature
+     * @return {boolean} true if the signature matches, false otherwise.
+     */
+    readAndCheckSignature: function(sig) {
+        // see implementations
+    },
+    /**
+     * Get the next date.
+     * @return {Date} the date.
+     */
+    readDate: function() {
+        var dostime = this.readInt(4);
+        return new Date(Date.UTC(
+        ((dostime >> 25) & 0x7f) + 1980, // year
+        ((dostime >> 21) & 0x0f) - 1, // month
+        (dostime >> 16) & 0x1f, // day
+        (dostime >> 11) & 0x1f, // hour
+        (dostime >> 5) & 0x3f, // minute
+        (dostime & 0x1f) << 1)); // second
+    }
+};
+module.exports = DataReader;
+
+},{"../utils":32}],19:[function(require,module,exports){
+'use strict';
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+var utils = require('../utils');
+
+function NodeBufferReader(data) {
+    Uint8ArrayReader.call(this, data);
+}
+utils.inherits(NodeBufferReader, Uint8ArrayReader);
+
+/**
+ * @see DataReader.readData
+ */
+NodeBufferReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = NodeBufferReader;
+
+},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){
+'use strict';
+var DataReader = require('./DataReader');
+var utils = require('../utils');
+
+function StringReader(data) {
+    DataReader.call(this, data);
+}
+utils.inherits(StringReader, DataReader);
+/**
+ * @see DataReader.byteAt
+ */
+StringReader.prototype.byteAt = function(i) {
+    return this.data.charCodeAt(this.zero + i);
+};
+/**
+ * @see DataReader.lastIndexOfSignature
+ */
+StringReader.prototype.lastIndexOfSignature = function(sig) {
+    return this.data.lastIndexOf(sig) - this.zero;
+};
+/**
+ * @see DataReader.readAndCheckSignature
+ */
+StringReader.prototype.readAndCheckSignature = function (sig) {
+    var data = this.readData(4);
+    return sig === data;
+};
+/**
+ * @see DataReader.readData
+ */
+StringReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    // this will work because the constructor applied the "& 0xff" mask.
+    var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = StringReader;
+
+},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){
+'use strict';
+var ArrayReader = require('./ArrayReader');
+var utils = require('../utils');
+
+function Uint8ArrayReader(data) {
+    ArrayReader.call(this, data);
+}
+utils.inherits(Uint8ArrayReader, ArrayReader);
+/**
+ * @see DataReader.readData
+ */
+Uint8ArrayReader.prototype.readData = function(size) {
+    this.checkOffset(size);
+    if(size === 0) {
+        // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].
+        return new Uint8Array(0);
+    }
+    var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size);
+    this.index += size;
+    return result;
+};
+module.exports = Uint8ArrayReader;
+
+},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var support = require('../support');
+var ArrayReader = require('./ArrayReader');
+var StringReader = require('./StringReader');
+var NodeBufferReader = require('./NodeBufferReader');
+var Uint8ArrayReader = require('./Uint8ArrayReader');
+
+/**
+ * Create a reader adapted to the data.
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.
+ * @return {DataReader} the data reader.
+ */
+module.exports = function (data) {
+    var type = utils.getTypeOf(data);
+    utils.checkSupport(type);
+    if (type === "string" && !support.uint8array) {
+        return new StringReader(data);
+    }
+    if (type === "nodebuffer") {
+        return new NodeBufferReader(data);
+    }
+    if (support.uint8array) {
+        return new Uint8ArrayReader(utils.transformTo("uint8array", data));
+    }
+    return new ArrayReader(utils.transformTo("array", data));
+};
+
+},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){
+'use strict';
+exports.LOCAL_FILE_HEADER = "PK\x03\x04";
+exports.CENTRAL_FILE_HEADER = "PK\x01\x02";
+exports.CENTRAL_DIRECTORY_END = "PK\x05\x06";
+exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07";
+exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06";
+exports.DATA_DESCRIPTOR = "PK\x07\x08";
+
+},{}],24:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var utils = require('../utils');
+
+/**
+ * A worker which convert chunks to a specified type.
+ * @constructor
+ * @param {String} destType the destination type.
+ */
+function ConvertWorker(destType) {
+    GenericWorker.call(this, "ConvertWorker to " + destType);
+    this.destType = destType;
+}
+utils.inherits(ConvertWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+ConvertWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : utils.transformTo(this.destType, chunk.data),
+        meta : chunk.meta
+    });
+};
+module.exports = ConvertWorker;
+
+},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){
+'use strict';
+
+var GenericWorker = require('./GenericWorker');
+var crc32 = require('../crc32');
+var utils = require('../utils');
+
+/**
+ * A worker which calculate the crc32 of the data flowing through.
+ * @constructor
+ */
+function Crc32Probe() {
+    GenericWorker.call(this, "Crc32Probe");
+    this.withStreamInfo("crc32", 0);
+}
+utils.inherits(Crc32Probe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Crc32Probe.prototype.processChunk = function (chunk) {
+    this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0);
+    this.push(chunk);
+};
+module.exports = Crc32Probe;
+
+},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+/**
+ * A worker which calculate the total length of the data flowing through.
+ * @constructor
+ * @param {String} propName the name used to expose the length
+ */
+function DataLengthProbe(propName) {
+    GenericWorker.call(this, "DataLengthProbe for " + propName);
+    this.propName = propName;
+    this.withStreamInfo(propName, 0);
+}
+utils.inherits(DataLengthProbe, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+DataLengthProbe.prototype.processChunk = function (chunk) {
+    if(chunk) {
+        var length = this.streamInfo[this.propName] || 0;
+        this.streamInfo[this.propName] = length + chunk.data.length;
+    }
+    GenericWorker.prototype.processChunk.call(this, chunk);
+};
+module.exports = DataLengthProbe;
+
+
+},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var GenericWorker = require('./GenericWorker');
+
+// the size of the generated chunks
+// TODO expose this as a public variable
+var DEFAULT_BLOCK_SIZE = 16 * 1024;
+
+/**
+ * A worker that reads a content and emits chunks.
+ * @constructor
+ * @param {Promise} dataP the promise of the data to split
+ */
+function DataWorker(dataP) {
+    GenericWorker.call(this, "DataWorker");
+    var self = this;
+    this.dataIsReady = false;
+    this.index = 0;
+    this.max = 0;
+    this.data = null;
+    this.type = "";
+
+    this._tickScheduled = false;
+
+    dataP.then(function (data) {
+        self.dataIsReady = true;
+        self.data = data;
+        self.max = data && data.length || 0;
+        self.type = utils.getTypeOf(data);
+        if(!self.isPaused) {
+            self._tickAndRepeat();
+        }
+    }, function (e) {
+        self.error(e);
+    });
+}
+
+utils.inherits(DataWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.cleanUp
+ */
+DataWorker.prototype.cleanUp = function () {
+    GenericWorker.prototype.cleanUp.call(this);
+    this.data = null;
+};
+
+/**
+ * @see GenericWorker.resume
+ */
+DataWorker.prototype.resume = function () {
+    if(!GenericWorker.prototype.resume.call(this)) {
+        return false;
+    }
+
+    if (!this._tickScheduled && this.dataIsReady) {
+        this._tickScheduled = true;
+        utils.delay(this._tickAndRepeat, [], this);
+    }
+    return true;
+};
+
+/**
+ * Trigger a tick a schedule an other call to this function.
+ */
+DataWorker.prototype._tickAndRepeat = function() {
+    this._tickScheduled = false;
+    if(this.isPaused || this.isFinished) {
+        return;
+    }
+    this._tick();
+    if(!this.isFinished) {
+        utils.delay(this._tickAndRepeat, [], this);
+        this._tickScheduled = true;
+    }
+};
+
+/**
+ * Read and push a chunk.
+ */
+DataWorker.prototype._tick = function() {
+
+    if(this.isPaused || this.isFinished) {
+        return false;
+    }
+
+    var size = DEFAULT_BLOCK_SIZE;
+    var data = null, nextIndex = Math.min(this.max, this.index + size);
+    if (this.index >= this.max) {
+        // EOF
+        return this.end();
+    } else {
+        switch(this.type) {
+            case "string":
+                data = this.data.substring(this.index, nextIndex);
+            break;
+            case "uint8array":
+                data = this.data.subarray(this.index, nextIndex);
+            break;
+            case "array":
+            case "nodebuffer":
+                data = this.data.slice(this.index, nextIndex);
+            break;
+        }
+        this.index = nextIndex;
+        return this.push({
+            data : data,
+            meta : {
+                percent : this.max ? this.index / this.max * 100 : 0
+            }
+        });
+    }
+};
+
+module.exports = DataWorker;
+
+},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){
+'use strict';
+
+/**
+ * A worker that does nothing but passing chunks to the next one. This is like
+ * a nodejs stream but with some differences. On the good side :
+ * - it works on IE 6-9 without any issue / polyfill
+ * - it weights less than the full dependencies bundled with browserify
+ * - it forwards errors (no need to declare an error handler EVERYWHERE)
+ *
+ * A chunk is an object with 2 attributes : `meta` and `data`. The former is an
+ * object containing anything (`percent` for example), see each worker for more
+ * details. The latter is the real data (String, Uint8Array, etc).
+ *
+ * @constructor
+ * @param {String} name the name of the stream (mainly used for debugging purposes)
+ */
+function GenericWorker(name) {
+    // the name of the worker
+    this.name = name || "default";
+    // an object containing metadata about the workers chain
+    this.streamInfo = {};
+    // an error which happened when the worker was paused
+    this.generatedError = null;
+    // an object containing metadata to be merged by this worker into the general metadata
+    this.extraStreamInfo = {};
+    // true if the stream is paused (and should not do anything), false otherwise
+    this.isPaused = true;
+    // true if the stream is finished (and should not do anything), false otherwise
+    this.isFinished = false;
+    // true if the stream is locked to prevent further structure updates (pipe), false otherwise
+    this.isLocked = false;
+    // the event listeners
+    this._listeners = {
+        'data':[],
+        'end':[],
+        'error':[]
+    };
+    // the previous worker, if any
+    this.previous = null;
+}
+
+GenericWorker.prototype = {
+    /**
+     * Push a chunk to the next workers.
+     * @param {Object} chunk the chunk to push
+     */
+    push : function (chunk) {
+        this.emit("data", chunk);
+    },
+    /**
+     * End the stream.
+     * @return {Boolean} true if this call ended the worker, false otherwise.
+     */
+    end : function () {
+        if (this.isFinished) {
+            return false;
+        }
+
+        this.flush();
+        try {
+            this.emit("end");
+            this.cleanUp();
+            this.isFinished = true;
+        } catch (e) {
+            this.emit("error", e);
+        }
+        return true;
+    },
+    /**
+     * End the stream with an error.
+     * @param {Error} e the error which caused the premature end.
+     * @return {Boolean} true if this call ended the worker with an error, false otherwise.
+     */
+    error : function (e) {
+        if (this.isFinished) {
+            return false;
+        }
+
+        if(this.isPaused) {
+            this.generatedError = e;
+        } else {
+            this.isFinished = true;
+
+            this.emit("error", e);
+
+            // in the workers chain exploded in the middle of the chain,
+            // the error event will go downward but we also need to notify
+            // workers upward that there has been an error.
+            if(this.previous) {
+                this.previous.error(e);
+            }
+
+            this.cleanUp();
+        }
+        return true;
+    },
+    /**
+     * Add a callback on an event.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Function} listener the function to call when the event is triggered
+     * @return {GenericWorker} the current object for chainability
+     */
+    on : function (name, listener) {
+        this._listeners[name].push(listener);
+        return this;
+    },
+    /**
+     * Clean any references when a worker is ending.
+     */
+    cleanUp : function () {
+        this.streamInfo = this.generatedError = this.extraStreamInfo = null;
+        this._listeners = [];
+    },
+    /**
+     * Trigger an event. This will call registered callback with the provided arg.
+     * @param {String} name the name of the event (data, end, error)
+     * @param {Object} arg the argument to call the callback with.
+     */
+    emit : function (name, arg) {
+        if (this._listeners[name]) {
+            for(var i = 0; i < this._listeners[name].length; i++) {
+                this._listeners[name][i].call(this, arg);
+            }
+        }
+    },
+    /**
+     * Chain a worker with an other.
+     * @param {Worker} next the worker receiving events from the current one.
+     * @return {worker} the next worker for chainability
+     */
+    pipe : function (next) {
+        return next.registerPrevious(this);
+    },
+    /**
+     * Same as `pipe` in the other direction.
+     * Using an API with `pipe(next)` is very easy.
+     * Implementing the API with the point of view of the next one registering
+     * a source is easier, see the ZipFileWorker.
+     * @param {Worker} previous the previous worker, sending events to this one
+     * @return {Worker} the current worker for chainability
+     */
+    registerPrevious : function (previous) {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+
+        // sharing the streamInfo...
+        this.streamInfo = previous.streamInfo;
+        // ... and adding our own bits
+        this.mergeStreamInfo();
+        this.previous =  previous;
+        var self = this;
+        previous.on('data', function (chunk) {
+            self.processChunk(chunk);
+        });
+        previous.on('end', function () {
+            self.end();
+        });
+        previous.on('error', function (e) {
+            self.error(e);
+        });
+        return this;
+    },
+    /**
+     * Pause the stream so it doesn't send events anymore.
+     * @return {Boolean} true if this call paused the worker, false otherwise.
+     */
+    pause : function () {
+        if(this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = true;
+
+        if(this.previous) {
+            this.previous.pause();
+        }
+        return true;
+    },
+    /**
+     * Resume a paused stream.
+     * @return {Boolean} true if this call resumed the worker, false otherwise.
+     */
+    resume : function () {
+        if(!this.isPaused || this.isFinished) {
+            return false;
+        }
+        this.isPaused = false;
+
+        // if true, the worker tried to resume but failed
+        var withError = false;
+        if(this.generatedError) {
+            this.error(this.generatedError);
+            withError = true;
+        }
+        if(this.previous) {
+            this.previous.resume();
+        }
+
+        return !withError;
+    },
+    /**
+     * Flush any remaining bytes as the stream is ending.
+     */
+    flush : function () {},
+    /**
+     * Process a chunk. This is usually the method overridden.
+     * @param {Object} chunk the chunk to process.
+     */
+    processChunk : function(chunk) {
+        this.push(chunk);
+    },
+    /**
+     * Add a key/value to be added in the workers chain streamInfo once activated.
+     * @param {String} key the key to use
+     * @param {Object} value the associated value
+     * @return {Worker} the current worker for chainability
+     */
+    withStreamInfo : function (key, value) {
+        this.extraStreamInfo[key] = value;
+        this.mergeStreamInfo();
+        return this;
+    },
+    /**
+     * Merge this worker's streamInfo into the chain's streamInfo.
+     */
+    mergeStreamInfo : function () {
+        for(var key in this.extraStreamInfo) {
+            if (!this.extraStreamInfo.hasOwnProperty(key)) {
+                continue;
+            }
+            this.streamInfo[key] = this.extraStreamInfo[key];
+        }
+    },
+
+    /**
+     * Lock the stream to prevent further updates on the workers chain.
+     * After calling this method, all calls to pipe will fail.
+     */
+    lock: function () {
+        if (this.isLocked) {
+            throw new Error("The stream '" + this + "' has already been used.");
+        }
+        this.isLocked = true;
+        if (this.previous) {
+            this.previous.lock();
+        }
+    },
+
+    /**
+     *
+     * Pretty print the workers chain.
+     */
+    toString : function () {
+        var me = "Worker " + this.name;
+        if (this.previous) {
+            return this.previous + " -> " + me;
+        } else {
+            return me;
+        }
+    }
+};
+
+module.exports = GenericWorker;
+
+},{}],29:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+var ConvertWorker = require('./ConvertWorker');
+var GenericWorker = require('./GenericWorker');
+var base64 = require('../base64');
+var support = require("../support");
+var external = require("../external");
+
+var NodejsStreamOutputAdapter = null;
+if (support.nodestream) {
+    try {
+        NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');
+    } catch(e) {}
+}
+
+/**
+ * Apply the final transformation of the data. If the user wants a Blob for
+ * example, it's easier to work with an U8intArray and finally do the
+ * ArrayBuffer/Blob conversion.
+ * @param {String} type the name of the final type
+ * @param {String|Uint8Array|Buffer} content the content to transform
+ * @param {String} mimeType the mime type of the content, if applicable.
+ * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.
+ */
+function transformZipOutput(type, content, mimeType) {
+    switch(type) {
+        case "blob" :
+            return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType);
+        case "base64" :
+            return base64.encode(content);
+        default :
+            return utils.transformTo(type, content);
+    }
+}
+
+/**
+ * Concatenate an array of data of the given type.
+ * @param {String} type the type of the data in the given array.
+ * @param {Array} dataArray the array containing the data chunks to concatenate
+ * @return {String|Uint8Array|Buffer} the concatenated data
+ * @throws Error if the asked type is unsupported
+ */
+function concat (type, dataArray) {
+    var i, index = 0, res = null, totalLength = 0;
+    for(i = 0; i < dataArray.length; i++) {
+        totalLength += dataArray[i].length;
+    }
+    switch(type) {
+        case "string":
+            return dataArray.join("");
+          case "array":
+            return Array.prototype.concat.apply([], dataArray);
+        case "uint8array":
+            res = new Uint8Array(totalLength);
+            for(i = 0; i < dataArray.length; i++) {
+                res.set(dataArray[i], index);
+                index += dataArray[i].length;
+            }
+            return res;
+        case "nodebuffer":
+            return Buffer.concat(dataArray);
+        default:
+            throw new Error("concat : unsupported type '"  + type + "'");
+    }
+}
+
+/**
+ * Listen a StreamHelper, accumulate its content and concatenate it into a
+ * complete block.
+ * @param {StreamHelper} helper the helper to use.
+ * @param {Function} updateCallback a callback called on each update. Called
+ * with one arg :
+ * - the metadata linked to the update received.
+ * @return Promise the promise for the accumulation.
+ */
+function accumulate(helper, updateCallback) {
+    return new external.Promise(function (resolve, reject){
+        var dataArray = [];
+        var chunkType = helper._internalType,
+            resultType = helper._outputType,
+            mimeType = helper._mimeType;
+        helper
+        .on('data', function (data, meta) {
+            dataArray.push(data);
+            if(updateCallback) {
+                updateCallback(meta);
+            }
+        })
+        .on('error', function(err) {
+            dataArray = [];
+            reject(err);
+        })
+        .on('end', function (){
+            try {
+                var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);
+                resolve(result);
+            } catch (e) {
+                reject(e);
+            }
+            dataArray = [];
+        })
+        .resume();
+    });
+}
+
+/**
+ * An helper to easily use workers outside of JSZip.
+ * @constructor
+ * @param {Worker} worker the worker to wrap
+ * @param {String} outputType the type of data expected by the use
+ * @param {String} mimeType the mime type of the content, if applicable.
+ */
+function StreamHelper(worker, outputType, mimeType) {
+    var internalType = outputType;
+    switch(outputType) {
+        case "blob":
+        case "arraybuffer":
+            internalType = "uint8array";
+        break;
+        case "base64":
+            internalType = "string";
+        break;
+    }
+
+    try {
+        // the type used internally
+        this._internalType = internalType;
+        // the type used to output results
+        this._outputType = outputType;
+        // the mime type
+        this._mimeType = mimeType;
+        utils.checkSupport(internalType);
+        this._worker = worker.pipe(new ConvertWorker(internalType));
+        // the last workers can be rewired without issues but we need to
+        // prevent any updates on previous workers.
+        worker.lock();
+    } catch(e) {
+        this._worker = new GenericWorker("error");
+        this._worker.error(e);
+    }
+}
+
+StreamHelper.prototype = {
+    /**
+     * Listen a StreamHelper, accumulate its content and concatenate it into a
+     * complete block.
+     * @param {Function} updateCb the update callback.
+     * @return Promise the promise for the accumulation.
+     */
+    accumulate : function (updateCb) {
+        return accumulate(this, updateCb);
+    },
+    /**
+     * Add a listener on an event triggered on a stream.
+     * @param {String} evt the name of the event
+     * @param {Function} fn the listener
+     * @return {StreamHelper} the current helper.
+     */
+    on : function (evt, fn) {
+        var self = this;
+
+        if(evt === "data") {
+            this._worker.on(evt, function (chunk) {
+                fn.call(self, chunk.data, chunk.meta);
+            });
+        } else {
+            this._worker.on(evt, function () {
+                utils.delay(fn, arguments, self);
+            });
+        }
+        return this;
+    },
+    /**
+     * Resume the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    resume : function () {
+        utils.delay(this._worker.resume, [], this._worker);
+        return this;
+    },
+    /**
+     * Pause the flow of chunks.
+     * @return {StreamHelper} the current helper.
+     */
+    pause : function () {
+        this._worker.pause();
+        return this;
+    },
+    /**
+     * Return a nodejs stream for this helper.
+     * @param {Function} updateCb the update callback.
+     * @return {NodejsStreamOutputAdapter} the nodejs stream.
+     */
+    toNodejsStream : function (updateCb) {
+        utils.checkSupport("nodestream");
+        if (this._outputType !== "nodebuffer") {
+            // an object stream containing blob/arraybuffer/uint8array/string
+            // is strange and I don't know if it would be useful.
+            // I you find this comment and have a good usecase, please open a
+            // bug report !
+            throw new Error(this._outputType + " is not supported by this method");
+        }
+
+        return new NodejsStreamOutputAdapter(this, {
+            objectMode : this._outputType !== "nodebuffer"
+        }, updateCb);
+    }
+};
+
+
+module.exports = StreamHelper;
+
+},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){
+'use strict';
+
+exports.base64 = true;
+exports.array = true;
+exports.string = true;
+exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined";
+exports.nodebuffer = typeof Buffer !== "undefined";
+// contains true if JSZip can read/generate Uint8Array, false otherwise.
+exports.uint8array = typeof Uint8Array !== "undefined";
+
+if (typeof ArrayBuffer === "undefined") {
+    exports.blob = false;
+}
+else {
+    var buffer = new ArrayBuffer(0);
+    try {
+        exports.blob = new Blob([buffer], {
+            type: "application/zip"
+        }).size === 0;
+    }
+    catch (e) {
+        try {
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(buffer);
+            exports.blob = builder.getBlob('application/zip').size === 0;
+        }
+        catch (e) {
+            exports.blob = false;
+        }
+    }
+}
+
+try {
+    exports.nodestream = !!require('readable-stream').Readable;
+} catch(e) {
+    exports.nodestream = false;
+}
+
+},{"readable-stream":16}],31:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+var support = require('./support');
+var nodejsUtils = require('./nodejsUtils');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * The following functions come from pako, from pako/lib/utils/strings
+ * released under the MIT license, see pako https://github.com/nodeca/pako/
+ */
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new Array(256);
+for (var i=0; i<256; i++) {
+  _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);
+}
+_utf8len[254]=_utf8len[254]=1; // Invalid sequence start
+
+// convert string to array (typed, when possible)
+var string2buf = function (str) {
+    var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+    // count binary size
+    for (m_pos = 0; m_pos < str_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+    }
+
+    // allocate buffer
+    if (support.uint8array) {
+        buf = new Uint8Array(buf_len);
+    } else {
+        buf = new Array(buf_len);
+    }
+
+    // convert
+    for (i=0, m_pos = 0; i < buf_len; m_pos++) {
+        c = str.charCodeAt(m_pos);
+        if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {
+            c2 = str.charCodeAt(m_pos+1);
+            if ((c2 & 0xfc00) === 0xdc00) {
+                c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+                m_pos++;
+            }
+        }
+        if (c < 0x80) {
+            /* one byte */
+            buf[i++] = c;
+        } else if (c < 0x800) {
+            /* two bytes */
+            buf[i++] = 0xC0 | (c >>> 6);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else if (c < 0x10000) {
+            /* three bytes */
+            buf[i++] = 0xE0 | (c >>> 12);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        } else {
+            /* four bytes */
+            buf[i++] = 0xf0 | (c >>> 18);
+            buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+            buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+            buf[i++] = 0x80 | (c & 0x3f);
+        }
+    }
+
+    return buf;
+};
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+var utf8border = function(buf, max) {
+    var pos;
+
+    max = max || buf.length;
+    if (max > buf.length) { max = buf.length; }
+
+    // go back from last position, until start of sequence found
+    pos = max-1;
+    while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+    // Fuckup - very small and broken sequence,
+    // return max, because we should return something anyway.
+    if (pos < 0) { return max; }
+
+    // If we came to start of buffer - that means vuffer is too small,
+    // return max too.
+    if (pos === 0) { return max; }
+
+    return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+// convert array to string
+var buf2string = function (buf) {
+    var str, i, out, c, c_len;
+    var len = buf.length;
+
+    // Reserve max possible length (2 words per char)
+    // NB: by unknown reasons, Array is significantly faster for
+    //     String.fromCharCode.apply than Uint16Array.
+    var utf16buf = new Array(len*2);
+
+    for (out=0, i=0; i<len;) {
+        c = buf[i++];
+        // quick process ascii
+        if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+        c_len = _utf8len[c];
+        // skip 5 & 6 byte codes
+        if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }
+
+        // apply mask on first byte
+        c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+        // join the rest
+        while (c_len > 1 && i < len) {
+            c = (c << 6) | (buf[i++] & 0x3f);
+            c_len--;
+        }
+
+        // terminated by end of string?
+        if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+        if (c < 0x10000) {
+            utf16buf[out++] = c;
+        } else {
+            c -= 0x10000;
+            utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+            utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+        }
+    }
+
+    // shrinkBuf(utf16buf, out)
+    if (utf16buf.length !== out) {
+        if(utf16buf.subarray) {
+            utf16buf = utf16buf.subarray(0, out);
+        } else {
+            utf16buf.length = out;
+        }
+    }
+
+    // return String.fromCharCode.apply(null, utf16buf);
+    return utils.applyFromCharCode(utf16buf);
+};
+
+
+// That's all for the pako functions.
+
+
+/**
+ * Transform a javascript string into an array (typed if possible) of bytes,
+ * UTF-8 encoded.
+ * @param {String} str the string to encode
+ * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.
+ */
+exports.utf8encode = function utf8encode(str) {
+    if (support.nodebuffer) {
+        return nodejsUtils.newBufferFrom(str, "utf-8");
+    }
+
+    return string2buf(str);
+};
+
+
+/**
+ * Transform a bytes array (or a representation) representing an UTF-8 encoded
+ * string into a javascript string.
+ * @param {Array|Uint8Array|Buffer} buf the data de decode
+ * @return {String} the decoded string.
+ */
+exports.utf8decode = function utf8decode(buf) {
+    if (support.nodebuffer) {
+        return utils.transformTo("nodebuffer", buf).toString("utf-8");
+    }
+
+    buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf);
+
+    return buf2string(buf);
+};
+
+/**
+ * A worker to decode utf8 encoded binary chunks into string chunks.
+ * @constructor
+ */
+function Utf8DecodeWorker() {
+    GenericWorker.call(this, "utf-8 decode");
+    // the last bytes if a chunk didn't end with a complete codepoint.
+    this.leftOver = null;
+}
+utils.inherits(Utf8DecodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8DecodeWorker.prototype.processChunk = function (chunk) {
+
+    var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data);
+
+    // 1st step, re-use what's left of the previous chunk
+    if (this.leftOver && this.leftOver.length) {
+        if(support.uint8array) {
+            var previousData = data;
+            data = new Uint8Array(previousData.length + this.leftOver.length);
+            data.set(this.leftOver, 0);
+            data.set(previousData, this.leftOver.length);
+        } else {
+            data = this.leftOver.concat(data);
+        }
+        this.leftOver = null;
+    }
+
+    var nextBoundary = utf8border(data);
+    var usableData = data;
+    if (nextBoundary !== data.length) {
+        if (support.uint8array) {
+            usableData = data.subarray(0, nextBoundary);
+            this.leftOver = data.subarray(nextBoundary, data.length);
+        } else {
+            usableData = data.slice(0, nextBoundary);
+            this.leftOver = data.slice(nextBoundary, data.length);
+        }
+    }
+
+    this.push({
+        data : exports.utf8decode(usableData),
+        meta : chunk.meta
+    });
+};
+
+/**
+ * @see GenericWorker.flush
+ */
+Utf8DecodeWorker.prototype.flush = function () {
+    if(this.leftOver && this.leftOver.length) {
+        this.push({
+            data : exports.utf8decode(this.leftOver),
+            meta : {}
+        });
+        this.leftOver = null;
+    }
+};
+exports.Utf8DecodeWorker = Utf8DecodeWorker;
+
+/**
+ * A worker to endcode string chunks into utf8 encoded binary chunks.
+ * @constructor
+ */
+function Utf8EncodeWorker() {
+    GenericWorker.call(this, "utf-8 encode");
+}
+utils.inherits(Utf8EncodeWorker, GenericWorker);
+
+/**
+ * @see GenericWorker.processChunk
+ */
+Utf8EncodeWorker.prototype.processChunk = function (chunk) {
+    this.push({
+        data : exports.utf8encode(chunk.data),
+        meta : chunk.meta
+    });
+};
+exports.Utf8EncodeWorker = Utf8EncodeWorker;
+
+},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){
+'use strict';
+
+var support = require('./support');
+var base64 = require('./base64');
+var nodejsUtils = require('./nodejsUtils');
+var setImmediate = require('core-js/library/fn/set-immediate');
+var external = require("./external");
+
+
+/**
+ * Convert a string that pass as a "binary string": it should represent a byte
+ * array but may have > 255 char codes. Be sure to take only the first byte
+ * and returns the byte array.
+ * @param {String} str the string to transform.
+ * @return {Array|Uint8Array} the string in a binary format.
+ */
+function string2binary(str) {
+    var result = null;
+    if (support.uint8array) {
+      result = new Uint8Array(str.length);
+    } else {
+      result = new Array(str.length);
+    }
+    return stringToArrayLike(str, result);
+}
+
+/**
+ * Create a new blob with the given content and the given type.
+ * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use
+ * an Uint8Array because the stock browser of android 4 won't accept it (it
+ * will be silently converted to a string, "[object Uint8Array]").
+ *
+ * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge:
+ * when a large amount of Array is used to create the Blob, the amount of
+ * memory consumed is nearly 100 times the original data amount.
+ *
+ * @param {String} type the mime type of the blob.
+ * @return {Blob} the created blob.
+ */
+exports.newBlob = function(part, type) {
+    exports.checkSupport("blob");
+
+    try {
+        // Blob constructor
+        return new Blob([part], {
+            type: type
+        });
+    }
+    catch (e) {
+
+        try {
+            // deprecated, browser only, old way
+            var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;
+            var builder = new Builder();
+            builder.append(part);
+            return builder.getBlob(type);
+        }
+        catch (e) {
+
+            // well, fuck ?!
+            throw new Error("Bug : can't construct the Blob.");
+        }
+    }
+
+
+};
+/**
+ * The identity function.
+ * @param {Object} input the input.
+ * @return {Object} the same input.
+ */
+function identity(input) {
+    return input;
+}
+
+/**
+ * Fill in an array with a string.
+ * @param {String} str the string to use.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.
+ */
+function stringToArrayLike(str, array) {
+    for (var i = 0; i < str.length; ++i) {
+        array[i] = str.charCodeAt(i) & 0xFF;
+    }
+    return array;
+}
+
+/**
+ * An helper for the function arrayLikeToString.
+ * This contains static informations and functions that
+ * can be optimized by the browser JIT compiler.
+ */
+var arrayToStringHelper = {
+    /**
+     * Transform an array of int into a string, chunk by chunk.
+     * See the performances notes on arrayLikeToString.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @param {String} type the type of the array.
+     * @param {Integer} chunk the chunk size.
+     * @return {String} the resulting string.
+     * @throws Error if the chunk is too big for the stack.
+     */
+    stringifyByChunk: function(array, type, chunk) {
+        var result = [], k = 0, len = array.length;
+        // shortcut
+        if (len <= chunk) {
+            return String.fromCharCode.apply(null, array);
+        }
+        while (k < len) {
+            if (type === "array" || type === "nodebuffer") {
+                result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));
+            }
+            else {
+                result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));
+            }
+            k += chunk;
+        }
+        return result.join("");
+    },
+    /**
+     * Call String.fromCharCode on every item in the array.
+     * This is the naive implementation, which generate A LOT of intermediate string.
+     * This should be used when everything else fail.
+     * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+     * @return {String} the result.
+     */
+    stringifyByChar: function(array){
+        var resultStr = "";
+        for(var i = 0; i < array.length; i++) {
+            resultStr += String.fromCharCode(array[i]);
+        }
+        return resultStr;
+    },
+    applyCanBeUsed : {
+        /**
+         * true if the browser accepts to use String.fromCharCode on Uint8Array
+         */
+        uint8array : (function () {
+            try {
+                return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })(),
+        /**
+         * true if the browser accepts to use String.fromCharCode on nodejs Buffer.
+         */
+        nodebuffer : (function () {
+            try {
+                return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1;
+            } catch (e) {
+                return false;
+            }
+        })()
+    }
+};
+
+/**
+ * Transform an array-like object to a string.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.
+ * @return {String} the result.
+ */
+function arrayLikeToString(array) {
+    // Performances notes :
+    // --------------------
+    // String.fromCharCode.apply(null, array) is the fastest, see
+    // see http://jsperf.com/converting-a-uint8array-to-a-string/2
+    // but the stack is limited (and we can get huge arrays !).
+    //
+    // result += String.fromCharCode(array[i]); generate too many strings !
+    //
+    // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2
+    // TODO : we now have workers that split the work. Do we still need that ?
+    var chunk = 65536,
+        type = exports.getTypeOf(array),
+        canUseApply = true;
+    if (type === "uint8array") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array;
+    } else if (type === "nodebuffer") {
+        canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer;
+    }
+
+    if (canUseApply) {
+        while (chunk > 1) {
+            try {
+                return arrayToStringHelper.stringifyByChunk(array, type, chunk);
+            } catch (e) {
+                chunk = Math.floor(chunk / 2);
+            }
+        }
+    }
+
+    // no apply or chunk error : slow and painful algorithm
+    // default browser on android 4.*
+    return arrayToStringHelper.stringifyByChar(array);
+}
+
+exports.applyFromCharCode = arrayLikeToString;
+
+
+/**
+ * Copy the data from an array-like to an other array-like.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.
+ * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.
+ * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.
+ */
+function arrayLikeToArrayLike(arrayFrom, arrayTo) {
+    for (var i = 0; i < arrayFrom.length; i++) {
+        arrayTo[i] = arrayFrom[i];
+    }
+    return arrayTo;
+}
+
+// a matrix containing functions to transform everything into everything.
+var transform = {};
+
+// string to ?
+transform["string"] = {
+    "string": identity,
+    "array": function(input) {
+        return stringToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["string"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return stringToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": function(input) {
+        return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length));
+    }
+};
+
+// array to ?
+transform["array"] = {
+    "string": arrayLikeToString,
+    "array": identity,
+    "arraybuffer": function(input) {
+        return (new Uint8Array(input)).buffer;
+    },
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// arraybuffer to ?
+transform["arraybuffer"] = {
+    "string": function(input) {
+        return arrayLikeToString(new Uint8Array(input));
+    },
+    "array": function(input) {
+        return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));
+    },
+    "arraybuffer": identity,
+    "uint8array": function(input) {
+        return new Uint8Array(input);
+    },
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(new Uint8Array(input));
+    }
+};
+
+// uint8array to ?
+transform["uint8array"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return input.buffer;
+    },
+    "uint8array": identity,
+    "nodebuffer": function(input) {
+        return nodejsUtils.newBufferFrom(input);
+    }
+};
+
+// nodebuffer to ?
+transform["nodebuffer"] = {
+    "string": arrayLikeToString,
+    "array": function(input) {
+        return arrayLikeToArrayLike(input, new Array(input.length));
+    },
+    "arraybuffer": function(input) {
+        return transform["nodebuffer"]["uint8array"](input).buffer;
+    },
+    "uint8array": function(input) {
+        return arrayLikeToArrayLike(input, new Uint8Array(input.length));
+    },
+    "nodebuffer": identity
+};
+
+/**
+ * Transform an input into any type.
+ * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.
+ * If no output type is specified, the unmodified input will be returned.
+ * @param {String} outputType the output type.
+ * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.
+ * @throws {Error} an Error if the browser doesn't support the requested output type.
+ */
+exports.transformTo = function(outputType, input) {
+    if (!input) {
+        // undefined, null, etc
+        // an empty string won't harm.
+        input = "";
+    }
+    if (!outputType) {
+        return input;
+    }
+    exports.checkSupport(outputType);
+    var inputType = exports.getTypeOf(input);
+    var result = transform[inputType][outputType](input);
+    return result;
+};
+
+/**
+ * Return the type of the input.
+ * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.
+ * @param {Object} input the input to identify.
+ * @return {String} the (lowercase) type of the input.
+ */
+exports.getTypeOf = function(input) {
+    if (typeof input === "string") {
+        return "string";
+    }
+    if (Object.prototype.toString.call(input) === "[object Array]") {
+        return "array";
+    }
+    if (support.nodebuffer && nodejsUtils.isBuffer(input)) {
+        return "nodebuffer";
+    }
+    if (support.uint8array && input instanceof Uint8Array) {
+        return "uint8array";
+    }
+    if (support.arraybuffer && input instanceof ArrayBuffer) {
+        return "arraybuffer";
+    }
+};
+
+/**
+ * Throw an exception if the type is not supported.
+ * @param {String} type the type to check.
+ * @throws {Error} an Error if the browser doesn't support the requested type.
+ */
+exports.checkSupport = function(type) {
+    var supported = support[type.toLowerCase()];
+    if (!supported) {
+        throw new Error(type + " is not supported by this platform");
+    }
+};
+
+exports.MAX_VALUE_16BITS = 65535;
+exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1
+
+/**
+ * Prettify a string read as binary.
+ * @param {string} str the string to prettify.
+ * @return {string} a pretty string.
+ */
+exports.pretty = function(str) {
+    var res = '',
+        code, i;
+    for (i = 0; i < (str || "").length; i++) {
+        code = str.charCodeAt(i);
+        res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase();
+    }
+    return res;
+};
+
+/**
+ * Defer the call of a function.
+ * @param {Function} callback the function to call asynchronously.
+ * @param {Array} args the arguments to give to the callback.
+ */
+exports.delay = function(callback, args, self) {
+    setImmediate(function () {
+        callback.apply(self || null, args || []);
+    });
+};
+
+/**
+ * Extends a prototype with an other, without calling a constructor with
+ * side effects. Inspired by nodejs' `utils.inherits`
+ * @param {Function} ctor the constructor to augment
+ * @param {Function} superCtor the parent constructor to use
+ */
+exports.inherits = function (ctor, superCtor) {
+    var Obj = function() {};
+    Obj.prototype = superCtor.prototype;
+    ctor.prototype = new Obj();
+};
+
+/**
+ * Merge the objects passed as parameters into a new one.
+ * @private
+ * @param {...Object} var_args All objects to merge.
+ * @return {Object} a new object with the data of the others.
+ */
+exports.extend = function() {
+    var result = {}, i, attr;
+    for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers
+        for (attr in arguments[i]) {
+            if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") {
+                result[attr] = arguments[i][attr];
+            }
+        }
+    }
+    return result;
+};
+
+/**
+ * Transform arbitrary content into a Promise.
+ * @param {String} name a name for the content being processed.
+ * @param {Object} inputData the content to process.
+ * @param {Boolean} isBinary true if the content is not an unicode string
+ * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.
+ * @param {Boolean} isBase64 true if the string content is encoded with base64.
+ * @return {Promise} a promise in a format usable by JSZip.
+ */
+exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {
+
+    // if inputData is already a promise, this flatten it.
+    var promise = external.Promise.resolve(inputData).then(function(data) {
+        
+        
+        var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);
+
+        if (isBlob && typeof FileReader !== "undefined") {
+            return new external.Promise(function (resolve, reject) {
+                var reader = new FileReader();
+
+                reader.onload = function(e) {
+                    resolve(e.target.result);
+                };
+                reader.onerror = function(e) {
+                    reject(e.target.error);
+                };
+                reader.readAsArrayBuffer(data);
+            });
+        } else {
+            return data;
+        }
+    });
+
+    return promise.then(function(data) {
+        var dataType = exports.getTypeOf(data);
+
+        if (!dataType) {
+            return external.Promise.reject(
+                new Error("Can't read the data of '" + name + "'. Is it " +
+                          "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?")
+            );
+        }
+        // special case : it's way easier to work with Uint8Array than with ArrayBuffer
+        if (dataType === "arraybuffer") {
+            data = exports.transformTo("uint8array", data);
+        } else if (dataType === "string") {
+            if (isBase64) {
+                data = base64.decode(data);
+            }
+            else if (isBinary) {
+                // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask
+                if (isOptimizedBinaryString !== true) {
+                    // this is a string, not in a base64 format.
+                    // Be sure that this is a correct "binary string"
+                    data = string2binary(data);
+                }
+            }
+        }
+        return data;
+    });
+};
+
+},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var sig = require('./signature');
+var ZipEntry = require('./zipEntry');
+var utf8 = require('./utf8');
+var support = require('./support');
+//  class ZipEntries {{{
+/**
+ * All the entries in the zip file.
+ * @constructor
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntries(loadOptions) {
+    this.files = [];
+    this.loadOptions = loadOptions;
+}
+ZipEntries.prototype = {
+    /**
+     * Check that the reader is on the specified signature.
+     * @param {string} expectedSignature the expected signature.
+     * @throws {Error} if it is an other signature.
+     */
+    checkSignature: function(expectedSignature) {
+        if (!this.reader.readAndCheckSignature(expectedSignature)) {
+            this.reader.index -= 4;
+            var signature = this.reader.readString(4);
+            throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")");
+        }
+    },
+    /**
+     * Check if the given signature is at the given index.
+     * @param {number} askedIndex the index to check.
+     * @param {string} expectedSignature the signature to expect.
+     * @return {boolean} true if the signature is here, false otherwise.
+     */
+    isSignature: function(askedIndex, expectedSignature) {
+        var currentIndex = this.reader.index;
+        this.reader.setIndex(askedIndex);
+        var signature = this.reader.readString(4);
+        var result = signature === expectedSignature;
+        this.reader.setIndex(currentIndex);
+        return result;
+    },
+    /**
+     * Read the end of the central directory.
+     */
+    readBlockEndOfCentral: function() {
+        this.diskNumber = this.reader.readInt(2);
+        this.diskWithCentralDirStart = this.reader.readInt(2);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(2);
+        this.centralDirRecords = this.reader.readInt(2);
+        this.centralDirSize = this.reader.readInt(4);
+        this.centralDirOffset = this.reader.readInt(4);
+
+        this.zipCommentLength = this.reader.readInt(2);
+        // warning : the encoding depends of the system locale
+        // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.
+        // On a windows machine, this field is encoded with the localized windows code page.
+        var zipComment = this.reader.readData(this.zipCommentLength);
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        // To get consistent behavior with the generation part, we will assume that
+        // this is utf8 encoded unless specified otherwise.
+        var decodeContent = utils.transformTo(decodeParamType, zipComment);
+        this.zipComment = this.loadOptions.decodeFileName(decodeContent);
+    },
+    /**
+     * Read the end of the Zip 64 central directory.
+     * Not merged with the method readEndOfCentral :
+     * The end of central can coexist with its Zip64 brother,
+     * I don't want to read the wrong number of bytes !
+     */
+    readBlockZip64EndOfCentral: function() {
+        this.zip64EndOfCentralSize = this.reader.readInt(8);
+        this.reader.skip(4);
+        // this.versionMadeBy = this.reader.readString(2);
+        // this.versionNeeded = this.reader.readInt(2);
+        this.diskNumber = this.reader.readInt(4);
+        this.diskWithCentralDirStart = this.reader.readInt(4);
+        this.centralDirRecordsOnThisDisk = this.reader.readInt(8);
+        this.centralDirRecords = this.reader.readInt(8);
+        this.centralDirSize = this.reader.readInt(8);
+        this.centralDirOffset = this.reader.readInt(8);
+
+        this.zip64ExtensibleData = {};
+        var extraDataSize = this.zip64EndOfCentralSize - 44,
+            index = 0,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+        while (index < extraDataSize) {
+            extraFieldId = this.reader.readInt(2);
+            extraFieldLength = this.reader.readInt(4);
+            extraFieldValue = this.reader.readData(extraFieldLength);
+            this.zip64ExtensibleData[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Read the end of the Zip 64 central directory locator.
+     */
+    readBlockZip64EndOfCentralLocator: function() {
+        this.diskWithZip64CentralDirStart = this.reader.readInt(4);
+        this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);
+        this.disksCount = this.reader.readInt(4);
+        if (this.disksCount > 1) {
+            throw new Error("Multi-volumes zip are not supported");
+        }
+    },
+    /**
+     * Read the local files, based on the offset read in the central part.
+     */
+    readLocalFiles: function() {
+        var i, file;
+        for (i = 0; i < this.files.length; i++) {
+            file = this.files[i];
+            this.reader.setIndex(file.localHeaderOffset);
+            this.checkSignature(sig.LOCAL_FILE_HEADER);
+            file.readLocalPart(this.reader);
+            file.handleUTF8();
+            file.processAttributes();
+        }
+    },
+    /**
+     * Read the central directory.
+     */
+    readCentralDir: function() {
+        var file;
+
+        this.reader.setIndex(this.centralDirOffset);
+        while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) {
+            file = new ZipEntry({
+                zip64: this.zip64
+            }, this.loadOptions);
+            file.readCentralPart(this.reader);
+            this.files.push(file);
+        }
+
+        if (this.centralDirRecords !== this.files.length) {
+            if (this.centralDirRecords !== 0 && this.files.length === 0) {
+                // We expected some records but couldn't find ANY.
+                // This is really suspicious, as if something went wrong.
+                throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length);
+            } else {
+                // We found some records but not all.
+                // Something is wrong but we got something for the user: no error here.
+                // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length);
+            }
+        }
+    },
+    /**
+     * Read the end of central directory.
+     */
+    readEndOfCentral: function() {
+        var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);
+        if (offset < 0) {
+            // Check if the content is a truncated zip or complete garbage.
+            // A "LOCAL_FILE_HEADER" is not required at the beginning (auto
+            // extractible zip for example) but it can give a good hint.
+            // If an ajax request was used without responseType, we will also
+            // get unreadable data.
+            var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER);
+
+            if (isGarbage) {
+                throw new Error("Can't find end of central directory : is this a zip file ? " +
+                                "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");
+            } else {
+                throw new Error("Corrupted zip: can't find end of central directory");
+            }
+
+        }
+        this.reader.setIndex(offset);
+        var endOfCentralDirOffset = offset;
+        this.checkSignature(sig.CENTRAL_DIRECTORY_END);
+        this.readBlockEndOfCentral();
+
+
+        /* extract from the zip spec :
+            4)  If one of the fields in the end of central directory
+                record is too small to hold required data, the field
+                should be set to -1 (0xFFFF or 0xFFFFFFFF) and the
+                ZIP64 format record should be created.
+            5)  The end of central directory record and the
+                Zip64 end of central directory locator record must
+                reside on the same disk when splitting or spanning
+                an archive.
+         */
+        if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) {
+            this.zip64 = true;
+
+            /*
+            Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from
+            the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents
+            all numbers as 64-bit double precision IEEE 754 floating point numbers.
+            So, we have 53bits for integers and bitwise operations treat everything as 32bits.
+            see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators
+            and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5
+            */
+
+            // should look for a zip64 EOCD locator
+            offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            if (offset < 0) {
+                throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");
+            }
+            this.reader.setIndex(offset);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);
+            this.readBlockZip64EndOfCentralLocator();
+
+            // now the zip64 EOCD record
+            if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) {
+                // console.warn("ZIP64 end of central directory not where expected.");
+                this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+                if (this.relativeOffsetEndOfZip64CentralDir < 0) {
+                    throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");
+                }
+            }
+            this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);
+            this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);
+            this.readBlockZip64EndOfCentral();
+        }
+
+        var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize;
+        if (this.zip64) {
+            expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator
+            expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize;
+        }
+
+        var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset;
+
+        if (extraBytes > 0) {
+            // console.warn(extraBytes, "extra bytes at beginning or within zipfile");
+            if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) {
+                // The offsets seem wrong, but we have something at the specified offset.
+                // So… we keep it.
+            } else {
+                // the offset is wrong, update the "zero" of the reader
+                // this happens if data has been prepended (crx files for example)
+                this.reader.zero = extraBytes;
+            }
+        } else if (extraBytes < 0) {
+            throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes.");
+        }
+    },
+    prepareReader: function(data) {
+        this.reader = readerFor(data);
+    },
+    /**
+     * Read a zip file and create ZipEntries.
+     * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.
+     */
+    load: function(data) {
+        this.prepareReader(data);
+        this.readEndOfCentral();
+        this.readCentralDir();
+        this.readLocalFiles();
+    }
+};
+// }}} end of ZipEntries
+module.exports = ZipEntries;
+
+},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){
+'use strict';
+var readerFor = require('./reader/readerFor');
+var utils = require('./utils');
+var CompressedObject = require('./compressedObject');
+var crc32fn = require('./crc32');
+var utf8 = require('./utf8');
+var compressions = require('./compressions');
+var support = require('./support');
+
+var MADE_BY_DOS = 0x00;
+var MADE_BY_UNIX = 0x03;
+
+/**
+ * Find a compression registered in JSZip.
+ * @param {string} compressionMethod the method magic to find.
+ * @return {Object|null} the JSZip compression object, null if none found.
+ */
+var findCompression = function(compressionMethod) {
+    for (var method in compressions) {
+        if (!compressions.hasOwnProperty(method)) {
+            continue;
+        }
+        if (compressions[method].magic === compressionMethod) {
+            return compressions[method];
+        }
+    }
+    return null;
+};
+
+// class ZipEntry {{{
+/**
+ * An entry in the zip file.
+ * @constructor
+ * @param {Object} options Options of the current file.
+ * @param {Object} loadOptions Options for loading the stream.
+ */
+function ZipEntry(options, loadOptions) {
+    this.options = options;
+    this.loadOptions = loadOptions;
+}
+ZipEntry.prototype = {
+    /**
+     * say if the file is encrypted.
+     * @return {boolean} true if the file is encrypted, false otherwise.
+     */
+    isEncrypted: function() {
+        // bit 1 is set
+        return (this.bitFlag & 0x0001) === 0x0001;
+    },
+    /**
+     * say if the file has utf-8 filename/comment.
+     * @return {boolean} true if the filename/comment is in utf-8, false otherwise.
+     */
+    useUTF8: function() {
+        // bit 11 is set
+        return (this.bitFlag & 0x0800) === 0x0800;
+    },
+    /**
+     * Read the local part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readLocalPart: function(reader) {
+        var compression, localExtraFieldsLength;
+
+        // we already know everything from the central dir !
+        // If the central dir data are false, we are doomed.
+        // On the bright side, the local part is scary  : zip64, data descriptors, both, etc.
+        // The less data we get here, the more reliable this should be.
+        // Let's skip the whole header and dash to the data !
+        reader.skip(22);
+        // in some zip created on windows, the filename stored in the central dir contains \ instead of /.
+        // Strangely, the filename here is OK.
+        // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes
+        // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators...
+        // Search "unzip mismatching "local" filename continuing with "central" filename version" on
+        // the internet.
+        //
+        // I think I see the logic here : the central directory is used to display
+        // content and the local directory is used to extract the files. Mixing / and \
+        // may be used to display \ to windows users and use / when extracting the files.
+        // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394
+        this.fileNameLength = reader.readInt(2);
+        localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir
+        // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding.
+        this.fileName = reader.readData(this.fileNameLength);
+        reader.skip(localExtraFieldsLength);
+
+        if (this.compressedSize === -1 || this.uncompressedSize === -1) {
+            throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)");
+        }
+
+        compression = findCompression(this.compressionMethod);
+        if (compression === null) { // no compression found
+            throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")");
+        }
+        this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize));
+    },
+
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readCentralPart: function(reader) {
+        this.versionMadeBy = reader.readInt(2);
+        reader.skip(2);
+        // this.versionNeeded = reader.readInt(2);
+        this.bitFlag = reader.readInt(2);
+        this.compressionMethod = reader.readString(2);
+        this.date = reader.readDate();
+        this.crc32 = reader.readInt(4);
+        this.compressedSize = reader.readInt(4);
+        this.uncompressedSize = reader.readInt(4);
+        var fileNameLength = reader.readInt(2);
+        this.extraFieldsLength = reader.readInt(2);
+        this.fileCommentLength = reader.readInt(2);
+        this.diskNumberStart = reader.readInt(2);
+        this.internalFileAttributes = reader.readInt(2);
+        this.externalFileAttributes = reader.readInt(4);
+        this.localHeaderOffset = reader.readInt(4);
+
+        if (this.isEncrypted()) {
+            throw new Error("Encrypted zip are not supported");
+        }
+
+        // will be read in the local part, see the comments there
+        reader.skip(fileNameLength);
+        this.readExtraFields(reader);
+        this.parseZIP64ExtraField(reader);
+        this.fileComment = reader.readData(this.fileCommentLength);
+    },
+
+    /**
+     * Parse the external file attributes and get the unix/dos permissions.
+     */
+    processAttributes: function () {
+        this.unixPermissions = null;
+        this.dosPermissions = null;
+        var madeBy = this.versionMadeBy >> 8;
+
+        // Check if we have the DOS directory flag set.
+        // We look for it in the DOS and UNIX permissions
+        // but some unknown platform could set it as a compatibility flag.
+        this.dir = this.externalFileAttributes & 0x0010 ? true : false;
+
+        if(madeBy === MADE_BY_DOS) {
+            // first 6 bits (0 to 5)
+            this.dosPermissions = this.externalFileAttributes & 0x3F;
+        }
+
+        if(madeBy === MADE_BY_UNIX) {
+            this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF;
+            // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8);
+        }
+
+        // fail safe : if the name ends with a / it probably means a folder
+        if (!this.dir && this.fileNameStr.slice(-1) === '/') {
+            this.dir = true;
+        }
+    },
+
+    /**
+     * Parse the ZIP64 extra field and merge the info in the current ZipEntry.
+     * @param {DataReader} reader the reader to use.
+     */
+    parseZIP64ExtraField: function(reader) {
+
+        if (!this.extraFields[0x0001]) {
+            return;
+        }
+
+        // should be something, preparing the extra reader
+        var extraReader = readerFor(this.extraFields[0x0001].value);
+
+        // I really hope that these 64bits integer can fit in 32 bits integer, because js
+        // won't let us have more.
+        if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {
+            this.uncompressedSize = extraReader.readInt(8);
+        }
+        if (this.compressedSize === utils.MAX_VALUE_32BITS) {
+            this.compressedSize = extraReader.readInt(8);
+        }
+        if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {
+            this.localHeaderOffset = extraReader.readInt(8);
+        }
+        if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {
+            this.diskNumberStart = extraReader.readInt(4);
+        }
+    },
+    /**
+     * Read the central part of a zip file and add the info in this object.
+     * @param {DataReader} reader the reader to use.
+     */
+    readExtraFields: function(reader) {
+        var end = reader.index + this.extraFieldsLength,
+            extraFieldId,
+            extraFieldLength,
+            extraFieldValue;
+
+        if (!this.extraFields) {
+            this.extraFields = {};
+        }
+
+        while (reader.index < end) {
+            extraFieldId = reader.readInt(2);
+            extraFieldLength = reader.readInt(2);
+            extraFieldValue = reader.readData(extraFieldLength);
+
+            this.extraFields[extraFieldId] = {
+                id: extraFieldId,
+                length: extraFieldLength,
+                value: extraFieldValue
+            };
+        }
+    },
+    /**
+     * Apply an UTF8 transformation if needed.
+     */
+    handleUTF8: function() {
+        var decodeParamType = support.uint8array ? "uint8array" : "array";
+        if (this.useUTF8()) {
+            this.fileNameStr = utf8.utf8decode(this.fileName);
+            this.fileCommentStr = utf8.utf8decode(this.fileComment);
+        } else {
+            var upath = this.findExtraFieldUnicodePath();
+            if (upath !== null) {
+                this.fileNameStr = upath;
+            } else {
+                // ASCII text or unsupported code page
+                var fileNameByteArray =  utils.transformTo(decodeParamType, this.fileName);
+                this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray);
+            }
+
+            var ucomment = this.findExtraFieldUnicodeComment();
+            if (ucomment !== null) {
+                this.fileCommentStr = ucomment;
+            } else {
+                // ASCII text or unsupported code page
+                var commentByteArray =  utils.transformTo(decodeParamType, this.fileComment);
+                this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray);
+            }
+        }
+    },
+
+    /**
+     * Find the unicode path declared in the extra field, if any.
+     * @return {String} the unicode path, null otherwise.
+     */
+    findExtraFieldUnicodePath: function() {
+        var upathField = this.extraFields[0x7075];
+        if (upathField) {
+            var extraReader = readerFor(upathField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the filename changed, this field is out of date.
+            if (crc32fn(this.fileName) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(upathField.length - 5));
+        }
+        return null;
+    },
+
+    /**
+     * Find the unicode comment declared in the extra field, if any.
+     * @return {String} the unicode comment, null otherwise.
+     */
+    findExtraFieldUnicodeComment: function() {
+        var ucommentField = this.extraFields[0x6375];
+        if (ucommentField) {
+            var extraReader = readerFor(ucommentField.value);
+
+            // wrong version
+            if (extraReader.readInt(1) !== 1) {
+                return null;
+            }
+
+            // the crc of the comment changed, this field is out of date.
+            if (crc32fn(this.fileComment) !== extraReader.readInt(4)) {
+                return null;
+            }
+
+            return utf8.utf8decode(extraReader.readData(ucommentField.length - 5));
+        }
+        return null;
+    }
+};
+module.exports = ZipEntry;
+
+},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){
+'use strict';
+
+var StreamHelper = require('./stream/StreamHelper');
+var DataWorker = require('./stream/DataWorker');
+var utf8 = require('./utf8');
+var CompressedObject = require('./compressedObject');
+var GenericWorker = require('./stream/GenericWorker');
+
+/**
+ * A simple object representing a file in the zip file.
+ * @constructor
+ * @param {string} name the name of the file
+ * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data
+ * @param {Object} options the options of the file
+ */
+var ZipObject = function(name, data, options) {
+    this.name = name;
+    this.dir = options.dir;
+    this.date = options.date;
+    this.comment = options.comment;
+    this.unixPermissions = options.unixPermissions;
+    this.dosPermissions = options.dosPermissions;
+
+    this._data = data;
+    this._dataBinary = options.binary;
+    // keep only the compression
+    this.options = {
+        compression : options.compression,
+        compressionOptions : options.compressionOptions
+    };
+};
+
+ZipObject.prototype = {
+    /**
+     * Create an internal stream for the content of this object.
+     * @param {String} type the type of each chunk.
+     * @return StreamHelper the stream.
+     */
+    internalStream: function (type) {
+        var result = null, outputType = "string";
+        try {
+            if (!type) {
+                throw new Error("No output type specified.");
+            }
+            outputType = type.toLowerCase();
+            var askUnicodeString = outputType === "string" || outputType === "text";
+            if (outputType === "binarystring" || outputType === "text") {
+                outputType = "string";
+            }
+            result = this._decompressWorker();
+
+            var isUnicodeString = !this._dataBinary;
+
+            if (isUnicodeString && !askUnicodeString) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            if (!isUnicodeString && askUnicodeString) {
+                result = result.pipe(new utf8.Utf8DecodeWorker());
+            }
+        } catch (e) {
+            result = new GenericWorker("error");
+            result.error(e);
+        }
+
+        return new StreamHelper(result, outputType, "");
+    },
+
+    /**
+     * Prepare the content in the asked type.
+     * @param {String} type the type of the result.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Promise the promise of the result.
+     */
+    async: function (type, onUpdate) {
+        return this.internalStream(type).accumulate(onUpdate);
+    },
+
+    /**
+     * Prepare the content as a nodejs stream.
+     * @param {String} type the type of each chunk.
+     * @param {Function} onUpdate a function to call on each internal update.
+     * @return Stream the stream.
+     */
+    nodeStream: function (type, onUpdate) {
+        return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate);
+    },
+
+    /**
+     * Return a worker for the compressed content.
+     * @private
+     * @param {Object} compression the compression object to use.
+     * @param {Object} compressionOptions the options to use when compressing.
+     * @return Worker the worker.
+     */
+    _compressWorker: function (compression, compressionOptions) {
+        if (
+            this._data instanceof CompressedObject &&
+            this._data.compression.magic === compression.magic
+        ) {
+            return this._data.getCompressedWorker();
+        } else {
+            var result = this._decompressWorker();
+            if(!this._dataBinary) {
+                result = result.pipe(new utf8.Utf8EncodeWorker());
+            }
+            return CompressedObject.createWorkerFrom(result, compression, compressionOptions);
+        }
+    },
+    /**
+     * Return a worker for the decompressed content.
+     * @private
+     * @return Worker the worker.
+     */
+    _decompressWorker : function () {
+        if (this._data instanceof CompressedObject) {
+            return this._data.getContentWorker();
+        } else if (this._data instanceof GenericWorker) {
+            return this._data;
+        } else {
+            return new DataWorker(this._data);
+        }
+    }
+};
+
+var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"];
+var removedFn = function () {
+    throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.");
+};
+
+for(var i = 0; i < removedMethods.length; i++) {
+    ZipObject.prototype[removedMethods[i]] = removedFn;
+}
+module.exports = ZipObject;
+
+},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){
+require('../modules/web.immediate');
+module.exports = require('../modules/_core').setImmediate;
+},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(require,module,exports){
+module.exports = function(it){
+  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+  return it;
+};
+},{}],38:[function(require,module,exports){
+var isObject = require('./_is-object');
+module.exports = function(it){
+  if(!isObject(it))throw TypeError(it + ' is not an object!');
+  return it;
+};
+},{"./_is-object":51}],39:[function(require,module,exports){
+var toString = {}.toString;
+
+module.exports = function(it){
+  return toString.call(it).slice(8, -1);
+};
+},{}],40:[function(require,module,exports){
+var core = module.exports = {version: '2.3.0'};
+if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+},{}],41:[function(require,module,exports){
+// optional / simple context binding
+var aFunction = require('./_a-function');
+module.exports = function(fn, that, length){
+  aFunction(fn);
+  if(that === undefined)return fn;
+  switch(length){
+    case 1: return function(a){
+      return fn.call(that, a);
+    };
+    case 2: return function(a, b){
+      return fn.call(that, a, b);
+    };
+    case 3: return function(a, b, c){
+      return fn.call(that, a, b, c);
+    };
+  }
+  return function(/* ...args */){
+    return fn.apply(that, arguments);
+  };
+};
+},{"./_a-function":37}],42:[function(require,module,exports){
+// Thank's IE8 for his funny defineProperty
+module.exports = !require('./_fails')(function(){
+  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_fails":45}],43:[function(require,module,exports){
+var isObject = require('./_is-object')
+  , document = require('./_global').document
+  // in old IE typeof document.createElement is 'object'
+  , is = isObject(document) && isObject(document.createElement);
+module.exports = function(it){
+  return is ? document.createElement(it) : {};
+};
+},{"./_global":46,"./_is-object":51}],44:[function(require,module,exports){
+var global    = require('./_global')
+  , core      = require('./_core')
+  , ctx       = require('./_ctx')
+  , hide      = require('./_hide')
+  , PROTOTYPE = 'prototype';
+
+var $export = function(type, name, source){
+  var IS_FORCED = type & $export.F
+    , IS_GLOBAL = type & $export.G
+    , IS_STATIC = type & $export.S
+    , IS_PROTO  = type & $export.P
+    , IS_BIND   = type & $export.B
+    , IS_WRAP   = type & $export.W
+    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
+    , expProto  = exports[PROTOTYPE]
+    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
+    , key, own, out;
+  if(IS_GLOBAL)source = name;
+  for(key in source){
+    // contains in native
+    own = !IS_FORCED && target && target[key] !== undefined;
+    if(own && key in exports)continue;
+    // export native or passed
+    out = own ? target[key] : source[key];
+    // prevent global pollution for namespaces
+    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
+    // bind timers to global for call from export context
+    : IS_BIND && own ? ctx(out, global)
+    // wrap global constructors for prevent change them in library
+    : IS_WRAP && target[key] == out ? (function(C){
+      var F = function(a, b, c){
+        if(this instanceof C){
+          switch(arguments.length){
+            case 0: return new C;
+            case 1: return new C(a);
+            case 2: return new C(a, b);
+          } return new C(a, b, c);
+        } return C.apply(this, arguments);
+      };
+      F[PROTOTYPE] = C[PROTOTYPE];
+      return F;
+    // make static versions for prototype methods
+    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
+    if(IS_PROTO){
+      (exports.virtual || (exports.virtual = {}))[key] = out;
+      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
+      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
+    }
+  }
+};
+// type bitmap
+$export.F = 1;   // forced
+$export.G = 2;   // global
+$export.S = 4;   // static
+$export.P = 8;   // proto
+$export.B = 16;  // bind
+$export.W = 32;  // wrap
+$export.U = 64;  // safe
+$export.R = 128; // real proto method for `library` 
+module.exports = $export;
+},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(require,module,exports){
+module.exports = function(exec){
+  try {
+    return !!exec();
+  } catch(e){
+    return true;
+  }
+};
+},{}],46:[function(require,module,exports){
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+var global = module.exports = typeof window != 'undefined' && window.Math == Math
+  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+},{}],47:[function(require,module,exports){
+var dP         = require('./_object-dp')
+  , createDesc = require('./_property-desc');
+module.exports = require('./_descriptors') ? function(object, key, value){
+  return dP.f(object, key, createDesc(1, value));
+} : function(object, key, value){
+  object[key] = value;
+  return object;
+};
+},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(require,module,exports){
+module.exports = require('./_global').document && document.documentElement;
+},{"./_global":46}],49:[function(require,module,exports){
+module.exports = !require('./_descriptors') && !require('./_fails')(function(){
+  return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
+});
+},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(require,module,exports){
+// fast apply, http://jsperf.lnkit.com/fast-apply/5
+module.exports = function(fn, args, that){
+  var un = that === undefined;
+  switch(args.length){
+    case 0: return un ? fn()
+                      : fn.call(that);
+    case 1: return un ? fn(args[0])
+                      : fn.call(that, args[0]);
+    case 2: return un ? fn(args[0], args[1])
+                      : fn.call(that, args[0], args[1]);
+    case 3: return un ? fn(args[0], args[1], args[2])
+                      : fn.call(that, args[0], args[1], args[2]);
+    case 4: return un ? fn(args[0], args[1], args[2], args[3])
+                      : fn.call(that, args[0], args[1], args[2], args[3]);
+  } return              fn.apply(that, args);
+};
+},{}],51:[function(require,module,exports){
+module.exports = function(it){
+  return typeof it === 'object' ? it !== null : typeof it === 'function';
+};
+},{}],52:[function(require,module,exports){
+var anObject       = require('./_an-object')
+  , IE8_DOM_DEFINE = require('./_ie8-dom-define')
+  , toPrimitive    = require('./_to-primitive')
+  , dP             = Object.defineProperty;
+
+exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
+  anObject(O);
+  P = toPrimitive(P, true);
+  anObject(Attributes);
+  if(IE8_DOM_DEFINE)try {
+    return dP(O, P, Attributes);
+  } catch(e){ /* empty */ }
+  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
+  if('value' in Attributes)O[P] = Attributes.value;
+  return O;
+};
+},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(require,module,exports){
+module.exports = function(bitmap, value){
+  return {
+    enumerable  : !(bitmap & 1),
+    configurable: !(bitmap & 2),
+    writable    : !(bitmap & 4),
+    value       : value
+  };
+};
+},{}],54:[function(require,module,exports){
+var ctx                = require('./_ctx')
+  , invoke             = require('./_invoke')
+  , html               = require('./_html')
+  , cel                = require('./_dom-create')
+  , global             = require('./_global')
+  , process            = global.process
+  , setTask            = global.setImmediate
+  , clearTask          = global.clearImmediate
+  , MessageChannel     = global.MessageChannel
+  , counter            = 0
+  , queue              = {}
+  , ONREADYSTATECHANGE = 'onreadystatechange'
+  , defer, channel, port;
+var run = function(){
+  var id = +this;
+  if(queue.hasOwnProperty(id)){
+    var fn = queue[id];
+    delete queue[id];
+    fn();
+  }
+};
+var listener = function(event){
+  run.call(event.data);
+};
+// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
+if(!setTask || !clearTask){
+  setTask = function setImmediate(fn){
+    var args = [], i = 1;
+    while(arguments.length > i)args.push(arguments[i++]);
+    queue[++counter] = function(){
+      invoke(typeof fn == 'function' ? fn : Function(fn), args);
+    };
+    defer(counter);
+    return counter;
+  };
+  clearTask = function clearImmediate(id){
+    delete queue[id];
+  };
+  // Node.js 0.8-
+  if(require('./_cof')(process) == 'process'){
+    defer = function(id){
+      process.nextTick(ctx(run, id, 1));
+    };
+  // Browsers with MessageChannel, includes WebWorkers
+  } else if(MessageChannel){
+    channel = new MessageChannel;
+    port    = channel.port2;
+    channel.port1.onmessage = listener;
+    defer = ctx(port.postMessage, port, 1);
+  // Browsers with postMessage, skip WebWorkers
+  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
+  } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){
+    defer = function(id){
+      global.postMessage(id + '', '*');
+    };
+    global.addEventListener('message', listener, false);
+  // IE8-
+  } else if(ONREADYSTATECHANGE in cel('script')){
+    defer = function(id){
+      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){
+        html.removeChild(this);
+        run.call(id);
+      };
+    };
+  // Rest old browsers
+  } else {
+    defer = function(id){
+      setTimeout(ctx(run, id, 1), 0);
+    };
+  }
+}
+module.exports = {
+  set:   setTask,
+  clear: clearTask
+};
+},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(require,module,exports){
+// 7.1.1 ToPrimitive(input [, PreferredType])
+var isObject = require('./_is-object');
+// instead of the ES6 spec version, we didn't implement @@toPrimitive case
+// and the second argument - flag - preferred type is a string
+module.exports = function(it, S){
+  if(!isObject(it))return it;
+  var fn, val;
+  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
+  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
+  throw TypeError("Can't convert object to primitive value");
+};
+},{"./_is-object":51}],56:[function(require,module,exports){
+var $export = require('./_export')
+  , $task   = require('./_task');
+$export($export.G + $export.B, {
+  setImmediate:   $task.set,
+  clearImmediate: $task.clear
+});
+},{"./_export":44,"./_task":54}],57:[function(require,module,exports){
+(function (global){
+'use strict';
+var Mutation = global.MutationObserver || global.WebKitMutationObserver;
+
+var scheduleDrain;
+
+{
+  if (Mutation) {
+    var called = 0;
+    var observer = new Mutation(nextTick);
+    var element = global.document.createTextNode('');
+    observer.observe(element, {
+      characterData: true
+    });
+    scheduleDrain = function () {
+      element.data = (called = ++called % 2);
+    };
+  } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {
+    var channel = new global.MessageChannel();
+    channel.port1.onmessage = nextTick;
+    scheduleDrain = function () {
+      channel.port2.postMessage(0);
+    };
+  } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {
+    scheduleDrain = function () {
+
+      // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
+      // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
+      var scriptEl = global.document.createElement('script');
+      scriptEl.onreadystatechange = function () {
+        nextTick();
+
+        scriptEl.onreadystatechange = null;
+        scriptEl.parentNode.removeChild(scriptEl);
+        scriptEl = null;
+      };
+      global.document.documentElement.appendChild(scriptEl);
+    };
+  } else {
+    scheduleDrain = function () {
+      setTimeout(nextTick, 0);
+    };
+  }
+}
+
+var draining;
+var queue = [];
+//named nextTick for less confusing stack traces
+function nextTick() {
+  draining = true;
+  var i, oldQueue;
+  var len = queue.length;
+  while (len) {
+    oldQueue = queue;
+    queue = [];
+    i = -1;
+    while (++i < len) {
+      oldQueue[i]();
+    }
+    len = queue.length;
+  }
+  draining = false;
+}
+
+module.exports = immediate;
+function immediate(task) {
+  if (queue.push(task) === 1 && !draining) {
+    scheduleDrain();
+  }
+}
+
+}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{}],58:[function(require,module,exports){
+'use strict';
+var immediate = require('immediate');
+
+/* istanbul ignore next */
+function INTERNAL() {}
+
+var handlers = {};
+
+var REJECTED = ['REJECTED'];
+var FULFILLED = ['FULFILLED'];
+var PENDING = ['PENDING'];
+
+module.exports = Promise;
+
+function Promise(resolver) {
+  if (typeof resolver !== 'function') {
+    throw new TypeError('resolver must be a function');
+  }
+  this.state = PENDING;
+  this.queue = [];
+  this.outcome = void 0;
+  if (resolver !== INTERNAL) {
+    safelyResolveThenable(this, resolver);
+  }
+}
+
+Promise.prototype["catch"] = function (onRejected) {
+  return this.then(null, onRejected);
+};
+Promise.prototype.then = function (onFulfilled, onRejected) {
+  if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||
+    typeof onRejected !== 'function' && this.state === REJECTED) {
+    return this;
+  }
+  var promise = new this.constructor(INTERNAL);
+  if (this.state !== PENDING) {
+    var resolver = this.state === FULFILLED ? onFulfilled : onRejected;
+    unwrap(promise, resolver, this.outcome);
+  } else {
+    this.queue.push(new QueueItem(promise, onFulfilled, onRejected));
+  }
+
+  return promise;
+};
+function QueueItem(promise, onFulfilled, onRejected) {
+  this.promise = promise;
+  if (typeof onFulfilled === 'function') {
+    this.onFulfilled = onFulfilled;
+    this.callFulfilled = this.otherCallFulfilled;
+  }
+  if (typeof onRejected === 'function') {
+    this.onRejected = onRejected;
+    this.callRejected = this.otherCallRejected;
+  }
+}
+QueueItem.prototype.callFulfilled = function (value) {
+  handlers.resolve(this.promise, value);
+};
+QueueItem.prototype.otherCallFulfilled = function (value) {
+  unwrap(this.promise, this.onFulfilled, value);
+};
+QueueItem.prototype.callRejected = function (value) {
+  handlers.reject(this.promise, value);
+};
+QueueItem.prototype.otherCallRejected = function (value) {
+  unwrap(this.promise, this.onRejected, value);
+};
+
+function unwrap(promise, func, value) {
+  immediate(function () {
+    var returnValue;
+    try {
+      returnValue = func(value);
+    } catch (e) {
+      return handlers.reject(promise, e);
+    }
+    if (returnValue === promise) {
+      handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));
+    } else {
+      handlers.resolve(promise, returnValue);
+    }
+  });
+}
+
+handlers.resolve = function (self, value) {
+  var result = tryCatch(getThen, value);
+  if (result.status === 'error') {
+    return handlers.reject(self, result.value);
+  }
+  var thenable = result.value;
+
+  if (thenable) {
+    safelyResolveThenable(self, thenable);
+  } else {
+    self.state = FULFILLED;
+    self.outcome = value;
+    var i = -1;
+    var len = self.queue.length;
+    while (++i < len) {
+      self.queue[i].callFulfilled(value);
+    }
+  }
+  return self;
+};
+handlers.reject = function (self, error) {
+  self.state = REJECTED;
+  self.outcome = error;
+  var i = -1;
+  var len = self.queue.length;
+  while (++i < len) {
+    self.queue[i].callRejected(error);
+  }
+  return self;
+};
+
+function getThen(obj) {
+  // Make sure we only access the accessor once as required by the spec
+  var then = obj && obj.then;
+  if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {
+    return function appyThen() {
+      then.apply(obj, arguments);
+    };
+  }
+}
+
+function safelyResolveThenable(self, thenable) {
+  // Either fulfill, reject or reject with error
+  var called = false;
+  function onError(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.reject(self, value);
+  }
+
+  function onSuccess(value) {
+    if (called) {
+      return;
+    }
+    called = true;
+    handlers.resolve(self, value);
+  }
+
+  function tryToUnwrap() {
+    thenable(onSuccess, onError);
+  }
+
+  var result = tryCatch(tryToUnwrap);
+  if (result.status === 'error') {
+    onError(result.value);
+  }
+}
+
+function tryCatch(func, value) {
+  var out = {};
+  try {
+    out.value = func(value);
+    out.status = 'success';
+  } catch (e) {
+    out.status = 'error';
+    out.value = e;
+  }
+  return out;
+}
+
+Promise.resolve = resolve;
+function resolve(value) {
+  if (value instanceof this) {
+    return value;
+  }
+  return handlers.resolve(new this(INTERNAL), value);
+}
+
+Promise.reject = reject;
+function reject(reason) {
+  var promise = new this(INTERNAL);
+  return handlers.reject(promise, reason);
+}
+
+Promise.all = all;
+function all(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var values = new Array(len);
+  var resolved = 0;
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    allResolver(iterable[i], i);
+  }
+  return promise;
+  function allResolver(value, i) {
+    self.resolve(value).then(resolveFromAll, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+    function resolveFromAll(outValue) {
+      values[i] = outValue;
+      if (++resolved === len && !called) {
+        called = true;
+        handlers.resolve(promise, values);
+      }
+    }
+  }
+}
+
+Promise.race = race;
+function race(iterable) {
+  var self = this;
+  if (Object.prototype.toString.call(iterable) !== '[object Array]') {
+    return this.reject(new TypeError('must be an array'));
+  }
+
+  var len = iterable.length;
+  var called = false;
+  if (!len) {
+    return this.resolve([]);
+  }
+
+  var i = -1;
+  var promise = new this(INTERNAL);
+
+  while (++i < len) {
+    resolver(iterable[i]);
+  }
+  return promise;
+  function resolver(value) {
+    self.resolve(value).then(function (response) {
+      if (!called) {
+        called = true;
+        handlers.resolve(promise, response);
+      }
+    }, function (error) {
+      if (!called) {
+        called = true;
+        handlers.reject(promise, error);
+      }
+    });
+  }
+}
+
+},{"immediate":57}],59:[function(require,module,exports){
+// Top level file is just a mixin of submodules & constants
+'use strict';
+
+var assign    = require('./lib/utils/common').assign;
+
+var deflate   = require('./lib/deflate');
+var inflate   = require('./lib/inflate');
+var constants = require('./lib/zlib/constants');
+
+var pako = {};
+
+assign(pako, deflate, inflate, constants);
+
+module.exports = pako;
+
+},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(require,module,exports){
+'use strict';
+
+
+var zlib_deflate = require('./zlib/deflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+
+var toString = Object.prototype.toString;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+var Z_NO_FLUSH      = 0;
+var Z_FINISH        = 4;
+
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_SYNC_FLUSH    = 2;
+
+var Z_DEFAULT_COMPRESSION = -1;
+
+var Z_DEFAULT_STRATEGY    = 0;
+
+var Z_DEFLATED  = 8;
+
+/* ===========================================================================*/
+
+
+/**
+ * class Deflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[deflate]],
+ * [[deflateRaw]] and [[gzip]].
+ **/
+
+/* internal
+ * Deflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Deflate#onData]] not overriden.
+ **/
+
+/**
+ * Deflate.result -> Uint8Array|Array
+ *
+ * Compressed result, generated by default [[Deflate#onData]]
+ * and [[Deflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Deflate#push]] with `Z_FINISH` / `true` param)  or if you
+ * push a chunk with explicit flush (call [[Deflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Deflate.err -> Number
+ *
+ * Error code after deflate finished. 0 (Z_OK) on success.
+ * You will not need it in real life, because deflate errors
+ * are possible only on wrong options or bad `onData` / `onEnd`
+ * custom handlers.
+ **/
+
+/**
+ * Deflate.msg -> String
+ *
+ * Error message, if [[Deflate.err]] != 0
+ **/
+
+
+/**
+ * new Deflate(options)
+ * - options (Object): zlib deflate options.
+ *
+ * Creates new deflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `level`
+ * - `windowBits`
+ * - `memLevel`
+ * - `strategy`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw deflate
+ * - `gzip` (Boolean) - create gzip wrapper
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ * - `header` (Object) - custom header for gzip
+ *   - `text` (Boolean) - true if compressed data believed to be text
+ *   - `time` (Number) - modification time, unix timestamp
+ *   - `os` (Number) - operation system code
+ *   - `extra` (Array) - array of bytes with extra data (max 65536)
+ *   - `name` (String) - file name (binary string)
+ *   - `comment` (String) - comment (binary string)
+ *   - `hcrc` (Boolean) - true if header crc should be added
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var deflate = new pako.Deflate({ level: 3});
+ *
+ * deflate.push(chunk1, false);
+ * deflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (deflate.err) { throw new Error(deflate.err); }
+ *
+ * console.log(deflate.result);
+ * ```
+ **/
+function Deflate(options) {
+  if (!(this instanceof Deflate)) return new Deflate(options);
+
+  this.options = utils.assign({
+    level: Z_DEFAULT_COMPRESSION,
+    method: Z_DEFLATED,
+    chunkSize: 16384,
+    windowBits: 15,
+    memLevel: 8,
+    strategy: Z_DEFAULT_STRATEGY,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  if (opt.raw && (opt.windowBits > 0)) {
+    opt.windowBits = -opt.windowBits;
+  }
+
+  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {
+    opt.windowBits += 16;
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status = zlib_deflate.deflateInit2(
+    this.strm,
+    opt.level,
+    opt.method,
+    opt.windowBits,
+    opt.memLevel,
+    opt.strategy
+  );
+
+  if (status !== Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  if (opt.header) {
+    zlib_deflate.deflateSetHeader(this.strm, opt.header);
+  }
+
+  if (opt.dictionary) {
+    var dict;
+    // Convert data if needed
+    if (typeof opt.dictionary === 'string') {
+      // If we need to compress text, change encoding to utf8.
+      dict = strings.string2buf(opt.dictionary);
+    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {
+      dict = new Uint8Array(opt.dictionary);
+    } else {
+      dict = opt.dictionary;
+    }
+
+    status = zlib_deflate.deflateSetDictionary(this.strm, dict);
+
+    if (status !== Z_OK) {
+      throw new Error(msg[status]);
+    }
+
+    this._dict_set = true;
+  }
+}
+
+/**
+ * Deflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be
+ *   converted to utf8 byte sequence.
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with
+ * new compressed chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the compression context.
+ *
+ * On fail call [[Deflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * array format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Deflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var status, _mode;
+
+  if (this.ended) { return false; }
+
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // If we need to compress text, change encoding to utf8.
+    strm.input = strings.string2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+    status = zlib_deflate.deflate(strm, _mode);    /* no bad return value */
+
+    if (status !== Z_STREAM_END && status !== Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+    if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {
+      if (this.options.to === 'string') {
+        this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
+      } else {
+        this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+      }
+    }
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
+
+  // Finalize on the last chunk.
+  if (_mode === Z_FINISH) {
+    status = zlib_deflate.deflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === Z_SYNC_FLUSH) {
+    this.onEnd(Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Deflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Deflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Deflate#onEnd(status) -> Void
+ * - status (Number): deflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called once after you tell deflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Deflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === Z_OK) {
+    if (this.options.to === 'string') {
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * deflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * Compress `data` with deflate algorithm and `options`.
+ *
+ * Supported options are:
+ *
+ * - level
+ * - windowBits
+ * - memLevel
+ * - strategy
+ * - dictionary
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be "binary string"
+ *    (each char code [0..255])
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , data = Uint8Array([1,2,3,4,5,6,7,8,9]);
+ *
+ * console.log(pako.deflate(data));
+ * ```
+ **/
+function deflate(input, options) {
+  var deflator = new Deflate(options);
+
+  deflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (deflator.err) { throw deflator.msg || msg[deflator.err]; }
+
+  return deflator.result;
+}
+
+
+/**
+ * deflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function deflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return deflate(input, options);
+}
+
+
+/**
+ * gzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to compress.
+ * - options (Object): zlib deflate options.
+ *
+ * The same as [[deflate]], but create gzip wrapper instead of
+ * deflate one.
+ **/
+function gzip(input, options) {
+  options = options || {};
+  options.gzip = true;
+  return deflate(input, options);
+}
+
+
+exports.Deflate = Deflate;
+exports.deflate = deflate;
+exports.deflateRaw = deflateRaw;
+exports.gzip = gzip;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(require,module,exports){
+'use strict';
+
+
+var zlib_inflate = require('./zlib/inflate');
+var utils        = require('./utils/common');
+var strings      = require('./utils/strings');
+var c            = require('./zlib/constants');
+var msg          = require('./zlib/messages');
+var ZStream      = require('./zlib/zstream');
+var GZheader     = require('./zlib/gzheader');
+
+var toString = Object.prototype.toString;
+
+/**
+ * class Inflate
+ *
+ * Generic JS-style wrapper for zlib calls. If you don't need
+ * streaming behaviour - use more simple functions: [[inflate]]
+ * and [[inflateRaw]].
+ **/
+
+/* internal
+ * inflate.chunks -> Array
+ *
+ * Chunks of output data, if [[Inflate#onData]] not overriden.
+ **/
+
+/**
+ * Inflate.result -> Uint8Array|Array|String
+ *
+ * Uncompressed result, generated by default [[Inflate#onData]]
+ * and [[Inflate#onEnd]] handlers. Filled after you push last chunk
+ * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you
+ * push a chunk with explicit flush (call [[Inflate#push]] with
+ * `Z_SYNC_FLUSH` param).
+ **/
+
+/**
+ * Inflate.err -> Number
+ *
+ * Error code after inflate finished. 0 (Z_OK) on success.
+ * Should be checked if broken data possible.
+ **/
+
+/**
+ * Inflate.msg -> String
+ *
+ * Error message, if [[Inflate.err]] != 0
+ **/
+
+
+/**
+ * new Inflate(options)
+ * - options (Object): zlib inflate options.
+ *
+ * Creates new inflator instance with specified params. Throws exception
+ * on bad params. Supported options:
+ *
+ * - `windowBits`
+ * - `dictionary`
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information on these.
+ *
+ * Additional options, for internal needs:
+ *
+ * - `chunkSize` - size of generated data chunks (16K by default)
+ * - `raw` (Boolean) - do raw inflate
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ * By default, when no options set, autodetect deflate/gzip data format via
+ * wrapper header.
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])
+ *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);
+ *
+ * var inflate = new pako.Inflate({ level: 3});
+ *
+ * inflate.push(chunk1, false);
+ * inflate.push(chunk2, true);  // true -> last chunk
+ *
+ * if (inflate.err) { throw new Error(inflate.err); }
+ *
+ * console.log(inflate.result);
+ * ```
+ **/
+function Inflate(options) {
+  if (!(this instanceof Inflate)) return new Inflate(options);
+
+  this.options = utils.assign({
+    chunkSize: 16384,
+    windowBits: 0,
+    to: ''
+  }, options || {});
+
+  var opt = this.options;
+
+  // Force window size for `raw` data, if not set directly,
+  // because we have no header for autodetect.
+  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {
+    opt.windowBits = -opt.windowBits;
+    if (opt.windowBits === 0) { opt.windowBits = -15; }
+  }
+
+  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate
+  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&
+      !(options && options.windowBits)) {
+    opt.windowBits += 32;
+  }
+
+  // Gzip header has no info about windows size, we can do autodetect only
+  // for deflate. So, if window size not set, force it to max when gzip possible
+  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {
+    // bit 3 (16) -> gzipped data
+    // bit 4 (32) -> autodetect gzip/deflate
+    if ((opt.windowBits & 15) === 0) {
+      opt.windowBits |= 15;
+    }
+  }
+
+  this.err    = 0;      // error code, if happens (0 = Z_OK)
+  this.msg    = '';     // error message
+  this.ended  = false;  // used to avoid multiple onEnd() calls
+  this.chunks = [];     // chunks of compressed data
+
+  this.strm   = new ZStream();
+  this.strm.avail_out = 0;
+
+  var status  = zlib_inflate.inflateInit2(
+    this.strm,
+    opt.windowBits
+  );
+
+  if (status !== c.Z_OK) {
+    throw new Error(msg[status]);
+  }
+
+  this.header = new GZheader();
+
+  zlib_inflate.inflateGetHeader(this.strm, this.header);
+}
+
+/**
+ * Inflate#push(data[, mode]) -> Boolean
+ * - data (Uint8Array|Array|ArrayBuffer|String): input data
+ * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.
+ *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.
+ *
+ * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with
+ * new output chunks. Returns `true` on success. The last data block must have
+ * mode Z_FINISH (or `true`). That will flush internal pending buffers and call
+ * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you
+ * can use mode Z_SYNC_FLUSH, keeping the decompression context.
+ *
+ * On fail call [[Inflate#onEnd]] with error code and return false.
+ *
+ * We strongly recommend to use `Uint8Array` on input for best speed (output
+ * format is detected automatically). Also, don't skip last param and always
+ * use the same type in your code (boolean or number). That will improve JS speed.
+ *
+ * For regular `Array`-s make sure all elements are [0..255].
+ *
+ * ##### Example
+ *
+ * ```javascript
+ * push(chunk, false); // push one of data chunks
+ * ...
+ * push(chunk, true);  // push last chunk
+ * ```
+ **/
+Inflate.prototype.push = function (data, mode) {
+  var strm = this.strm;
+  var chunkSize = this.options.chunkSize;
+  var dictionary = this.options.dictionary;
+  var status, _mode;
+  var next_out_utf8, tail, utf8str;
+  var dict;
+
+  // Flag to properly process Z_BUF_ERROR on testing inflate call
+  // when we check that all output data was flushed.
+  var allowBufError = false;
+
+  if (this.ended) { return false; }
+  _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);
+
+  // Convert data if needed
+  if (typeof data === 'string') {
+    // Only binary strings can be decompressed on practice
+    strm.input = strings.binstring2buf(data);
+  } else if (toString.call(data) === '[object ArrayBuffer]') {
+    strm.input = new Uint8Array(data);
+  } else {
+    strm.input = data;
+  }
+
+  strm.next_in = 0;
+  strm.avail_in = strm.input.length;
+
+  do {
+    if (strm.avail_out === 0) {
+      strm.output = new utils.Buf8(chunkSize);
+      strm.next_out = 0;
+      strm.avail_out = chunkSize;
+    }
+
+    status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);    /* no bad return value */
+
+    if (status === c.Z_NEED_DICT && dictionary) {
+      // Convert data if needed
+      if (typeof dictionary === 'string') {
+        dict = strings.string2buf(dictionary);
+      } else if (toString.call(dictionary) === '[object ArrayBuffer]') {
+        dict = new Uint8Array(dictionary);
+      } else {
+        dict = dictionary;
+      }
+
+      status = zlib_inflate.inflateSetDictionary(this.strm, dict);
+
+    }
+
+    if (status === c.Z_BUF_ERROR && allowBufError === true) {
+      status = c.Z_OK;
+      allowBufError = false;
+    }
+
+    if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
+      this.onEnd(status);
+      this.ended = true;
+      return false;
+    }
+
+    if (strm.next_out) {
+      if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {
+
+        if (this.options.to === 'string') {
+
+          next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
+
+          tail = strm.next_out - next_out_utf8;
+          utf8str = strings.buf2string(strm.output, next_out_utf8);
+
+          // move tail
+          strm.next_out = tail;
+          strm.avail_out = chunkSize - tail;
+          if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }
+
+          this.onData(utf8str);
+
+        } else {
+          this.onData(utils.shrinkBuf(strm.output, strm.next_out));
+        }
+      }
+    }
+
+    // When no more input data, we should check that internal inflate buffers
+    // are flushed. The only way to do it when avail_out = 0 - run one more
+    // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.
+    // Here we set flag to process this error properly.
+    //
+    // NOTE. Deflate does not return error in this case and does not needs such
+    // logic.
+    if (strm.avail_in === 0 && strm.avail_out === 0) {
+      allowBufError = true;
+    }
+
+  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
+
+  if (status === c.Z_STREAM_END) {
+    _mode = c.Z_FINISH;
+  }
+
+  // Finalize on the last chunk.
+  if (_mode === c.Z_FINISH) {
+    status = zlib_inflate.inflateEnd(this.strm);
+    this.onEnd(status);
+    this.ended = true;
+    return status === c.Z_OK;
+  }
+
+  // callback interim results if Z_SYNC_FLUSH.
+  if (_mode === c.Z_SYNC_FLUSH) {
+    this.onEnd(c.Z_OK);
+    strm.avail_out = 0;
+    return true;
+  }
+
+  return true;
+};
+
+
+/**
+ * Inflate#onData(chunk) -> Void
+ * - chunk (Uint8Array|Array|String): ouput data. Type of array depends
+ *   on js engine support. When string output requested, each chunk
+ *   will be string.
+ *
+ * By default, stores data blocks in `chunks[]` property and glue
+ * those in `onEnd`. Override this handler, if you need another behaviour.
+ **/
+Inflate.prototype.onData = function (chunk) {
+  this.chunks.push(chunk);
+};
+
+
+/**
+ * Inflate#onEnd(status) -> Void
+ * - status (Number): inflate status. 0 (Z_OK) on success,
+ *   other if not.
+ *
+ * Called either after you tell inflate that the input stream is
+ * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)
+ * or if an error happened. By default - join collected chunks,
+ * free memory and fill `results` / `err` properties.
+ **/
+Inflate.prototype.onEnd = function (status) {
+  // On success - join
+  if (status === c.Z_OK) {
+    if (this.options.to === 'string') {
+      // Glue & convert here, until we teach pako to send
+      // utf8 alligned strings to onData
+      this.result = this.chunks.join('');
+    } else {
+      this.result = utils.flattenChunks(this.chunks);
+    }
+  }
+  this.chunks = [];
+  this.err = status;
+  this.msg = this.strm.msg;
+};
+
+
+/**
+ * inflate(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Decompress `data` with inflate/ungzip and `options`. Autodetect
+ * format via wrapper header by default. That's why we don't provide
+ * separate `ungzip` method.
+ *
+ * Supported options are:
+ *
+ * - windowBits
+ *
+ * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)
+ * for more information.
+ *
+ * Sugar (options):
+ *
+ * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify
+ *   negative windowBits implicitly.
+ * - `to` (String) - if equal to 'string', then result will be converted
+ *   from utf8 to utf16 (javascript) string. When string output requested,
+ *   chunk length can differ from `chunkSize`, depending on content.
+ *
+ *
+ * ##### Example:
+ *
+ * ```javascript
+ * var pako = require('pako')
+ *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])
+ *   , output;
+ *
+ * try {
+ *   output = pako.inflate(input);
+ * } catch (err)
+ *   console.log(err);
+ * }
+ * ```
+ **/
+function inflate(input, options) {
+  var inflator = new Inflate(options);
+
+  inflator.push(input, true);
+
+  // That will never happens, if you don't cheat with options :)
+  if (inflator.err) { throw inflator.msg || msg[inflator.err]; }
+
+  return inflator.result;
+}
+
+
+/**
+ * inflateRaw(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * The same as [[inflate]], but creates raw data, without wrapper
+ * (header and adler32 crc).
+ **/
+function inflateRaw(input, options) {
+  options = options || {};
+  options.raw = true;
+  return inflate(input, options);
+}
+
+
+/**
+ * ungzip(data[, options]) -> Uint8Array|Array|String
+ * - data (Uint8Array|Array|String): input data to decompress.
+ * - options (Object): zlib inflate options.
+ *
+ * Just shortcut to [[inflate]], because it autodetects format
+ * by header.content. Done for convenience.
+ **/
+
+
+exports.Inflate = Inflate;
+exports.inflate = inflate;
+exports.inflateRaw = inflateRaw;
+exports.ungzip  = inflate;
+
+},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(require,module,exports){
+'use strict';
+
+
+var TYPED_OK =  (typeof Uint8Array !== 'undefined') &&
+                (typeof Uint16Array !== 'undefined') &&
+                (typeof Int32Array !== 'undefined');
+
+
+exports.assign = function (obj /*from1, from2, from3, ...*/) {
+  var sources = Array.prototype.slice.call(arguments, 1);
+  while (sources.length) {
+    var source = sources.shift();
+    if (!source) { continue; }
+
+    if (typeof source !== 'object') {
+      throw new TypeError(source + 'must be non-object');
+    }
+
+    for (var p in source) {
+      if (source.hasOwnProperty(p)) {
+        obj[p] = source[p];
+      }
+    }
+  }
+
+  return obj;
+};
+
+
+// reduce buffer size, avoiding mem copy
+exports.shrinkBuf = function (buf, size) {
+  if (buf.length === size) { return buf; }
+  if (buf.subarray) { return buf.subarray(0, size); }
+  buf.length = size;
+  return buf;
+};
+
+
+var fnTyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    if (src.subarray && dest.subarray) {
+      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
+      return;
+    }
+    // Fallback to ordinary array
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    var i, l, len, pos, chunk, result;
+
+    // calculate data length
+    len = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      len += chunks[i].length;
+    }
+
+    // join chunks
+    result = new Uint8Array(len);
+    pos = 0;
+    for (i = 0, l = chunks.length; i < l; i++) {
+      chunk = chunks[i];
+      result.set(chunk, pos);
+      pos += chunk.length;
+    }
+
+    return result;
+  }
+};
+
+var fnUntyped = {
+  arraySet: function (dest, src, src_offs, len, dest_offs) {
+    for (var i = 0; i < len; i++) {
+      dest[dest_offs + i] = src[src_offs + i];
+    }
+  },
+  // Join array of chunks to single array.
+  flattenChunks: function (chunks) {
+    return [].concat.apply([], chunks);
+  }
+};
+
+
+// Enable/Disable typed arrays use, for testing
+//
+exports.setTyped = function (on) {
+  if (on) {
+    exports.Buf8  = Uint8Array;
+    exports.Buf16 = Uint16Array;
+    exports.Buf32 = Int32Array;
+    exports.assign(exports, fnTyped);
+  } else {
+    exports.Buf8  = Array;
+    exports.Buf16 = Array;
+    exports.Buf32 = Array;
+    exports.assign(exports, fnUntyped);
+  }
+};
+
+exports.setTyped(TYPED_OK);
+
+},{}],63:[function(require,module,exports){
+// String encode/decode helpers
+'use strict';
+
+
+var utils = require('./common');
+
+
+// Quick check if we can use fast array to bin string conversion
+//
+// - apply(Array) can fail on Android 2.2
+// - apply(Uint8Array) can fail on iOS 5.1 Safary
+//
+var STR_APPLY_OK = true;
+var STR_APPLY_UIA_OK = true;
+
+try { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }
+try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }
+
+
+// Table with utf8 lengths (calculated by first byte of sequence)
+// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,
+// because max possible codepoint is 0x10ffff
+var _utf8len = new utils.Buf8(256);
+for (var q = 0; q < 256; q++) {
+  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);
+}
+_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start
+
+
+// convert string to array (typed, when possible)
+exports.string2buf = function (str) {
+  var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+
+  // count binary size
+  for (m_pos = 0; m_pos < str_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;
+  }
+
+  // allocate buffer
+  buf = new utils.Buf8(buf_len);
+
+  // convert
+  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
+    c = str.charCodeAt(m_pos);
+    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {
+      c2 = str.charCodeAt(m_pos + 1);
+      if ((c2 & 0xfc00) === 0xdc00) {
+        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);
+        m_pos++;
+      }
+    }
+    if (c < 0x80) {
+      /* one byte */
+      buf[i++] = c;
+    } else if (c < 0x800) {
+      /* two bytes */
+      buf[i++] = 0xC0 | (c >>> 6);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else if (c < 0x10000) {
+      /* three bytes */
+      buf[i++] = 0xE0 | (c >>> 12);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    } else {
+      /* four bytes */
+      buf[i++] = 0xf0 | (c >>> 18);
+      buf[i++] = 0x80 | (c >>> 12 & 0x3f);
+      buf[i++] = 0x80 | (c >>> 6 & 0x3f);
+      buf[i++] = 0x80 | (c & 0x3f);
+    }
+  }
+
+  return buf;
+};
+
+// Helper (used in 2 places)
+function buf2binstring(buf, len) {
+  // use fallback for big arrays to avoid stack overflow
+  if (len < 65537) {
+    if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {
+      return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
+    }
+  }
+
+  var result = '';
+  for (var i = 0; i < len; i++) {
+    result += String.fromCharCode(buf[i]);
+  }
+  return result;
+}
+
+
+// Convert byte array to binary string
+exports.buf2binstring = function (buf) {
+  return buf2binstring(buf, buf.length);
+};
+
+
+// Convert binary string (typed, when possible)
+exports.binstring2buf = function (str) {
+  var buf = new utils.Buf8(str.length);
+  for (var i = 0, len = buf.length; i < len; i++) {
+    buf[i] = str.charCodeAt(i);
+  }
+  return buf;
+};
+
+
+// convert array to string
+exports.buf2string = function (buf, max) {
+  var i, out, c, c_len;
+  var len = max || buf.length;
+
+  // Reserve max possible length (2 words per char)
+  // NB: by unknown reasons, Array is significantly faster for
+  //     String.fromCharCode.apply than Uint16Array.
+  var utf16buf = new Array(len * 2);
+
+  for (out = 0, i = 0; i < len;) {
+    c = buf[i++];
+    // quick process ascii
+    if (c < 0x80) { utf16buf[out++] = c; continue; }
+
+    c_len = _utf8len[c];
+    // skip 5 & 6 byte codes
+    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }
+
+    // apply mask on first byte
+    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;
+    // join the rest
+    while (c_len > 1 && i < len) {
+      c = (c << 6) | (buf[i++] & 0x3f);
+      c_len--;
+    }
+
+    // terminated by end of string?
+    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }
+
+    if (c < 0x10000) {
+      utf16buf[out++] = c;
+    } else {
+      c -= 0x10000;
+      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);
+      utf16buf[out++] = 0xdc00 | (c & 0x3ff);
+    }
+  }
+
+  return buf2binstring(utf16buf, out);
+};
+
+
+// Calculate max possible position in utf8 buffer,
+// that will not break sequence. If that's not possible
+// - (very small limits) return max size as is.
+//
+// buf[] - utf8 bytes array
+// max   - length limit (mandatory);
+exports.utf8border = function (buf, max) {
+  var pos;
+
+  max = max || buf.length;
+  if (max > buf.length) { max = buf.length; }
+
+  // go back from last position, until start of sequence found
+  pos = max - 1;
+  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }
+
+  // Fuckup - very small and broken sequence,
+  // return max, because we should return something anyway.
+  if (pos < 0) { return max; }
+
+  // If we came to start of buffer - that means vuffer is too small,
+  // return max too.
+  if (pos === 0) { return max; }
+
+  return (pos + _utf8len[buf[pos]] > max) ? pos : max;
+};
+
+},{"./common":62}],64:[function(require,module,exports){
+'use strict';
+
+// Note: adler32 takes 12% for level 0 and 2% for level 6.
+// It doesn't worth to make additional optimizationa as in original.
+// Small size is preferable.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function adler32(adler, buf, len, pos) {
+  var s1 = (adler & 0xffff) |0,
+      s2 = ((adler >>> 16) & 0xffff) |0,
+      n = 0;
+
+  while (len !== 0) {
+    // Set limit ~ twice less than 5552, to keep
+    // s2 in 31-bits, because we force signed ints.
+    // in other case %= will fail.
+    n = len > 2000 ? 2000 : len;
+    len -= n;
+
+    do {
+      s1 = (s1 + buf[pos++]) |0;
+      s2 = (s2 + s1) |0;
+    } while (--n);
+
+    s1 %= 65521;
+    s2 %= 65521;
+  }
+
+  return (s1 | (s2 << 16)) |0;
+}
+
+
+module.exports = adler32;
+
+},{}],65:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+
+  /* Allowed flush values; see deflate() and inflate() below for details */
+  Z_NO_FLUSH:         0,
+  Z_PARTIAL_FLUSH:    1,
+  Z_SYNC_FLUSH:       2,
+  Z_FULL_FLUSH:       3,
+  Z_FINISH:           4,
+  Z_BLOCK:            5,
+  Z_TREES:            6,
+
+  /* Return codes for the compression/decompression functions. Negative values
+  * are errors, positive values are used for special but normal events.
+  */
+  Z_OK:               0,
+  Z_STREAM_END:       1,
+  Z_NEED_DICT:        2,
+  Z_ERRNO:           -1,
+  Z_STREAM_ERROR:    -2,
+  Z_DATA_ERROR:      -3,
+  //Z_MEM_ERROR:     -4,
+  Z_BUF_ERROR:       -5,
+  //Z_VERSION_ERROR: -6,
+
+  /* compression levels */
+  Z_NO_COMPRESSION:         0,
+  Z_BEST_SPEED:             1,
+  Z_BEST_COMPRESSION:       9,
+  Z_DEFAULT_COMPRESSION:   -1,
+
+
+  Z_FILTERED:               1,
+  Z_HUFFMAN_ONLY:           2,
+  Z_RLE:                    3,
+  Z_FIXED:                  4,
+  Z_DEFAULT_STRATEGY:       0,
+
+  /* Possible values of the data_type field (though see inflate()) */
+  Z_BINARY:                 0,
+  Z_TEXT:                   1,
+  //Z_ASCII:                1, // = Z_TEXT (deprecated)
+  Z_UNKNOWN:                2,
+
+  /* The deflate compression method */
+  Z_DEFLATED:               8
+  //Z_NULL:                 null // Use -1 or null inline, depending on var type
+};
+
+},{}],66:[function(require,module,exports){
+'use strict';
+
+// Note: we can't get significant speed boost here.
+// So write code to minimize size - no pregenerated tables
+// and array tools dependencies.
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// Use ordinary array, since untyped makes no boost here
+function makeTable() {
+  var c, table = [];
+
+  for (var n = 0; n < 256; n++) {
+    c = n;
+    for (var k = 0; k < 8; k++) {
+      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
+    }
+    table[n] = c;
+  }
+
+  return table;
+}
+
+// Create table on load. Just 255 signed longs. Not a problem.
+var crcTable = makeTable();
+
+
+function crc32(crc, buf, len, pos) {
+  var t = crcTable,
+      end = pos + len;
+
+  crc ^= -1;
+
+  for (var i = pos; i < end; i++) {
+    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
+  }
+
+  return (crc ^ (-1)); // >>> 0;
+}
+
+
+module.exports = crc32;
+
+},{}],67:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils   = require('../utils/common');
+var trees   = require('./trees');
+var adler32 = require('./adler32');
+var crc32   = require('./crc32');
+var msg     = require('./messages');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+var Z_NO_FLUSH      = 0;
+var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+//var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+//var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+//var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+
+/* compression levels */
+//var Z_NO_COMPRESSION      = 0;
+//var Z_BEST_SPEED          = 1;
+//var Z_BEST_COMPRESSION    = 9;
+var Z_DEFAULT_COMPRESSION = -1;
+
+
+var Z_FILTERED            = 1;
+var Z_HUFFMAN_ONLY        = 2;
+var Z_RLE                 = 3;
+var Z_FIXED               = 4;
+var Z_DEFAULT_STRATEGY    = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+//var Z_BINARY              = 0;
+//var Z_TEXT                = 1;
+//var Z_ASCII               = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+/*============================================================================*/
+
+
+var MAX_MEM_LEVEL = 9;
+/* Maximum value for memLevel in deflateInit2 */
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_MEM_LEVEL = 8;
+
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+var D_CODES       = 30;
+/* number of distance codes */
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+var MAX_BITS  = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var MIN_MATCH = 3;
+var MAX_MATCH = 258;
+var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);
+
+var PRESET_DICT = 0x20;
+
+var INIT_STATE = 42;
+var EXTRA_STATE = 69;
+var NAME_STATE = 73;
+var COMMENT_STATE = 91;
+var HCRC_STATE = 103;
+var BUSY_STATE = 113;
+var FINISH_STATE = 666;
+
+var BS_NEED_MORE      = 1; /* block not completed, need more input or more output */
+var BS_BLOCK_DONE     = 2; /* block flush performed */
+var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */
+var BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */
+
+var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.
+
+function err(strm, errorCode) {
+  strm.msg = msg[errorCode];
+  return errorCode;
+}
+
+function rank(f) {
+  return ((f) << 1) - ((f) > 4 ? 9 : 0);
+}
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+
+/* =========================================================================
+ * Flush as much pending output as possible. All deflate() output goes
+ * through this function so some applications may wish to modify it
+ * to avoid allocating a large strm->output buffer and copying into it.
+ * (See also read_buf()).
+ */
+function flush_pending(strm) {
+  var s = strm.state;
+
+  //_tr_flush_bits(s);
+  var len = s.pending;
+  if (len > strm.avail_out) {
+    len = strm.avail_out;
+  }
+  if (len === 0) { return; }
+
+  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
+  strm.next_out += len;
+  s.pending_out += len;
+  strm.total_out += len;
+  strm.avail_out -= len;
+  s.pending -= len;
+  if (s.pending === 0) {
+    s.pending_out = 0;
+  }
+}
+
+
+function flush_block_only(s, last) {
+  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);
+  s.block_start = s.strstart;
+  flush_pending(s.strm);
+}
+
+
+function put_byte(s, b) {
+  s.pending_buf[s.pending++] = b;
+}
+
+
+/* =========================================================================
+ * Put a short in the pending buffer. The 16-bit value is put in MSB order.
+ * IN assertion: the stream state is correct and there is enough room in
+ * pending_buf.
+ */
+function putShortMSB(s, b) {
+//  put_byte(s, (Byte)(b >> 8));
+//  put_byte(s, (Byte)(b & 0xff));
+  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;
+  s.pending_buf[s.pending++] = b & 0xff;
+}
+
+
+/* ===========================================================================
+ * Read a new buffer from the current input stream, update the adler32
+ * and total number of bytes read.  All deflate() input goes through
+ * this function so some applications may wish to modify it to avoid
+ * allocating a large strm->input buffer and copying from it.
+ * (See also flush_pending()).
+ */
+function read_buf(strm, buf, start, size) {
+  var len = strm.avail_in;
+
+  if (len > size) { len = size; }
+  if (len === 0) { return 0; }
+
+  strm.avail_in -= len;
+
+  // zmemcpy(buf, strm->next_in, len);
+  utils.arraySet(buf, strm.input, strm.next_in, len, start);
+  if (strm.state.wrap === 1) {
+    strm.adler = adler32(strm.adler, buf, len, start);
+  }
+
+  else if (strm.state.wrap === 2) {
+    strm.adler = crc32(strm.adler, buf, len, start);
+  }
+
+  strm.next_in += len;
+  strm.total_in += len;
+
+  return len;
+}
+
+
+/* ===========================================================================
+ * Set match_start to the longest match starting at the given string and
+ * return its length. Matches shorter or equal to prev_length are discarded,
+ * in which case the result is equal to prev_length and match_start is
+ * garbage.
+ * IN assertions: cur_match is the head of the hash chain for the current
+ *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
+ * OUT assertion: the match length is not greater than s->lookahead.
+ */
+function longest_match(s, cur_match) {
+  var chain_length = s.max_chain_length;      /* max hash chain length */
+  var scan = s.strstart; /* current string */
+  var match;                       /* matched string */
+  var len;                           /* length of current match */
+  var best_len = s.prev_length;              /* best match length so far */
+  var nice_match = s.nice_match;             /* stop if match long enough */
+  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?
+      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;
+
+  var _win = s.window; // shortcut
+
+  var wmask = s.w_mask;
+  var prev  = s.prev;
+
+  /* Stop when cur_match becomes <= limit. To simplify the code,
+   * we prevent matches with the string of window index 0.
+   */
+
+  var strend = s.strstart + MAX_MATCH;
+  var scan_end1  = _win[scan + best_len - 1];
+  var scan_end   = _win[scan + best_len];
+
+  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
+   * It is easy to get rid of this optimization if necessary.
+   */
+  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
+
+  /* Do not waste too much time if we already have a good match: */
+  if (s.prev_length >= s.good_match) {
+    chain_length >>= 2;
+  }
+  /* Do not look for matches beyond the end of the input. This is necessary
+   * to make deflate deterministic.
+   */
+  if (nice_match > s.lookahead) { nice_match = s.lookahead; }
+
+  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
+
+  do {
+    // Assert(cur_match < s->strstart, "no future");
+    match = cur_match;
+
+    /* Skip to next match if the match length cannot increase
+     * or if the match length is less than 2.  Note that the checks below
+     * for insufficient lookahead only occur occasionally for performance
+     * reasons.  Therefore uninitialized memory will be accessed, and
+     * conditional jumps will be made that depend on those values.
+     * However the length of the match is limited to the lookahead, so
+     * the output of deflate is not affected by the uninitialized values.
+     */
+
+    if (_win[match + best_len]     !== scan_end  ||
+        _win[match + best_len - 1] !== scan_end1 ||
+        _win[match]                !== _win[scan] ||
+        _win[++match]              !== _win[scan + 1]) {
+      continue;
+    }
+
+    /* The check at best_len-1 can be removed because it will be made
+     * again later. (This heuristic is not always a win.)
+     * It is not necessary to compare scan[2] and match[2] since they
+     * are always equal when the other bytes match, given that
+     * the hash keys are equal and that HASH_BITS >= 8.
+     */
+    scan += 2;
+    match++;
+    // Assert(*scan == *match, "match[2]?");
+
+    /* We check for insufficient lookahead only every 8th comparison;
+     * the 256th check will be made at strstart+258.
+     */
+    do {
+      /*jshint noempty:false*/
+    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
+             scan < strend);
+
+    // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
+
+    len = MAX_MATCH - (strend - scan);
+    scan = strend - MAX_MATCH;
+
+    if (len > best_len) {
+      s.match_start = cur_match;
+      best_len = len;
+      if (len >= nice_match) {
+        break;
+      }
+      scan_end1  = _win[scan + best_len - 1];
+      scan_end   = _win[scan + best_len];
+    }
+  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
+
+  if (best_len <= s.lookahead) {
+    return best_len;
+  }
+  return s.lookahead;
+}
+
+
+/* ===========================================================================
+ * Fill the window when the lookahead becomes insufficient.
+ * Updates strstart and lookahead.
+ *
+ * IN assertion: lookahead < MIN_LOOKAHEAD
+ * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
+ *    At least one byte has been read, or avail_in == 0; reads are
+ *    performed for at least two bytes (required for the zip translate_eol
+ *    option -- not supported here).
+ */
+function fill_window(s) {
+  var _w_size = s.w_size;
+  var p, n, m, more, str;
+
+  //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
+
+  do {
+    more = s.window_size - s.lookahead - s.strstart;
+
+    // JS ints have 32 bit, block below not needed
+    /* Deal with !@#$% 64K limit: */
+    //if (sizeof(int) <= 2) {
+    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
+    //        more = wsize;
+    //
+    //  } else if (more == (unsigned)(-1)) {
+    //        /* Very unlikely, but possible on 16 bit machine if
+    //         * strstart == 0 && lookahead == 1 (input done a byte at time)
+    //         */
+    //        more--;
+    //    }
+    //}
+
+
+    /* If the window is almost full and there is insufficient lookahead,
+     * move the upper half to the lower one to make room in the upper half.
+     */
+    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
+
+      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
+      s.match_start -= _w_size;
+      s.strstart -= _w_size;
+      /* we now have strstart >= MAX_DIST */
+      s.block_start -= _w_size;
+
+      /* Slide the hash table (could be avoided with 32 bit values
+       at the expense of memory usage). We slide even when level == 0
+       to keep the hash table consistent if we switch back to level > 0
+       later. (Using level 0 permanently is not an optimal usage of
+       zlib, so we don't care about this pathological case.)
+       */
+
+      n = s.hash_size;
+      p = n;
+      do {
+        m = s.head[--p];
+        s.head[p] = (m >= _w_size ? m - _w_size : 0);
+      } while (--n);
+
+      n = _w_size;
+      p = n;
+      do {
+        m = s.prev[--p];
+        s.prev[p] = (m >= _w_size ? m - _w_size : 0);
+        /* If n is not on any hash chain, prev[n] is garbage but
+         * its value will never be used.
+         */
+      } while (--n);
+
+      more += _w_size;
+    }
+    if (s.strm.avail_in === 0) {
+      break;
+    }
+
+    /* If there was no sliding:
+     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
+     *    more == window_size - lookahead - strstart
+     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
+     * => more >= window_size - 2*WSIZE + 2
+     * In the BIG_MEM or MMAP case (not yet supported),
+     *   window_size == input_size + MIN_LOOKAHEAD  &&
+     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
+     * Otherwise, window_size == 2*WSIZE so more >= 2.
+     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
+     */
+    //Assert(more >= 2, "more < 2");
+    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
+    s.lookahead += n;
+
+    /* Initialize the hash value now that we have some input: */
+    if (s.lookahead + s.insert >= MIN_MATCH) {
+      str = s.strstart - s.insert;
+      s.ins_h = s.window[str];
+
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
+//#if MIN_MATCH != 3
+//        Call update_hash() MIN_MATCH-3 more times
+//#endif
+      while (s.insert) {
+        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+        s.prev[str & s.w_mask] = s.head[s.ins_h];
+        s.head[s.ins_h] = str;
+        str++;
+        s.insert--;
+        if (s.lookahead + s.insert < MIN_MATCH) {
+          break;
+        }
+      }
+    }
+    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
+     * but this is not important since only literal bytes will be emitted.
+     */
+
+  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
+
+  /* If the WIN_INIT bytes after the end of the current data have never been
+   * written, then zero those bytes in order to avoid memory check reports of
+   * the use of uninitialized (or uninitialised as Julian writes) bytes by
+   * the longest match routines.  Update the high water mark for the next
+   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
+   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
+   */
+//  if (s.high_water < s.window_size) {
+//    var curr = s.strstart + s.lookahead;
+//    var init = 0;
+//
+//    if (s.high_water < curr) {
+//      /* Previous high water mark below current data -- zero WIN_INIT
+//       * bytes or up to end of window, whichever is less.
+//       */
+//      init = s.window_size - curr;
+//      if (init > WIN_INIT)
+//        init = WIN_INIT;
+//      zmemzero(s->window + curr, (unsigned)init);
+//      s->high_water = curr + init;
+//    }
+//    else if (s->high_water < (ulg)curr + WIN_INIT) {
+//      /* High water mark at or above current data, but below current data
+//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
+//       * to end of window, whichever is less.
+//       */
+//      init = (ulg)curr + WIN_INIT - s->high_water;
+//      if (init > s->window_size - s->high_water)
+//        init = s->window_size - s->high_water;
+//      zmemzero(s->window + s->high_water, (unsigned)init);
+//      s->high_water += init;
+//    }
+//  }
+//
+//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
+//    "not enough room for search");
+}
+
+/* ===========================================================================
+ * Copy without compression as much as possible from the input stream, return
+ * the current block state.
+ * This function does not insert new strings in the dictionary since
+ * uncompressible data is probably not useful. This function is used
+ * only for the level=0 compression option.
+ * NOTE: this function should be optimized to avoid extra copying from
+ * window to pending_buf.
+ */
+function deflate_stored(s, flush) {
+  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
+   * to pending_buf_size, and each stored block has a 5 byte header:
+   */
+  var max_block_size = 0xffff;
+
+  if (max_block_size > s.pending_buf_size - 5) {
+    max_block_size = s.pending_buf_size - 5;
+  }
+
+  /* Copy as much as possible from input to output: */
+  for (;;) {
+    /* Fill the window as much as possible: */
+    if (s.lookahead <= 1) {
+
+      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||
+      //  s->block_start >= (long)s->w_size, "slide too late");
+//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||
+//        s.block_start >= s.w_size)) {
+//        throw  new Error("slide too late");
+//      }
+
+      fill_window(s);
+      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+
+      if (s.lookahead === 0) {
+        break;
+      }
+      /* flush the current block */
+    }
+    //Assert(s->block_start >= 0L, "block gone");
+//    if (s.block_start < 0) throw new Error("block gone");
+
+    s.strstart += s.lookahead;
+    s.lookahead = 0;
+
+    /* Emit a stored block if pending_buf will be full: */
+    var max_start = s.block_start + max_block_size;
+
+    if (s.strstart === 0 || s.strstart >= max_start) {
+      /* strstart == 0 is possible when wraparound on 16-bit machine */
+      s.lookahead = s.strstart - max_start;
+      s.strstart = max_start;
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+
+
+    }
+    /* Flush if we may have to slide, otherwise block_start may become
+     * negative and the data will be gone:
+     */
+    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+
+  s.insert = 0;
+
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+
+  if (s.strstart > s.block_start) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_NEED_MORE;
+}
+
+/* ===========================================================================
+ * Compress as much as possible from the input stream, return the current
+ * block state.
+ * This function does not perform lazy evaluation of matches and inserts
+ * new strings in the dictionary only for unmatched strings or for short
+ * matches. It is used only for the fast compression options.
+ */
+function deflate_fast(s, flush) {
+  var hash_head;        /* head of the hash chain */
+  var bflush;           /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) {
+        break; /* flush the current block */
+      }
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     * At this point we have always match_length < MIN_MATCH
+     */
+    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+    }
+    if (s.match_length >= MIN_MATCH) {
+      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only
+
+      /*** _tr_tally_dist(s, s.strstart - s.match_start,
+                     s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+
+      /* Insert new strings in the hash table only if the match length
+       * is not too large. This saves time but degrades compression.
+       */
+      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {
+        s.match_length--; /* string at strstart already in table */
+        do {
+          s.strstart++;
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+          /* strstart never exceeds WSIZE-MAX_MATCH, so there are
+           * always MIN_MATCH bytes ahead.
+           */
+        } while (--s.match_length !== 0);
+        s.strstart++;
+      } else
+      {
+        s.strstart += s.match_length;
+        s.match_length = 0;
+        s.ins_h = s.window[s.strstart];
+        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */
+        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
+
+//#if MIN_MATCH != 3
+//                Call UPDATE_HASH() MIN_MATCH-3 more times
+//#endif
+        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
+         * matter since it will be recomputed at next deflate call.
+         */
+      }
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s.window[s.strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * Same as above, but achieves better compression. We use a lazy
+ * evaluation for matches: a match is finally adopted only if there is
+ * no better match at the next window position.
+ */
+function deflate_slow(s, flush) {
+  var hash_head;          /* head of hash chain */
+  var bflush;              /* set if current block must be flushed */
+
+  var max_insert;
+
+  /* Process the input block. */
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the next match, plus MIN_MATCH bytes to insert the
+     * string following the next match.
+     */
+    if (s.lookahead < MIN_LOOKAHEAD) {
+      fill_window(s);
+      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* Insert the string window[strstart .. strstart+2] in the
+     * dictionary, and set hash_head to the head of the hash chain:
+     */
+    hash_head = 0/*NIL*/;
+    if (s.lookahead >= MIN_MATCH) {
+      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+      s.head[s.ins_h] = s.strstart;
+      /***/
+    }
+
+    /* Find the longest match, discarding those <= prev_length.
+     */
+    s.prev_length = s.match_length;
+    s.prev_match = s.match_start;
+    s.match_length = MIN_MATCH - 1;
+
+    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&
+        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {
+      /* To simplify the code, we prevent matches with the string
+       * of window index 0 (in particular we have to avoid a match
+       * of the string with itself at the start of the input file).
+       */
+      s.match_length = longest_match(s, hash_head);
+      /* longest_match() sets match_start */
+
+      if (s.match_length <= 5 &&
+         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {
+
+        /* If prev_match is also MIN_MATCH, match_start is garbage
+         * but we will ignore the current match anyway.
+         */
+        s.match_length = MIN_MATCH - 1;
+      }
+    }
+    /* If there was a match at the previous step and the current
+     * match is not better, output the previous match:
+     */
+    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
+      max_insert = s.strstart + s.lookahead - MIN_MATCH;
+      /* Do not insert strings in hash table beyond this. */
+
+      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);
+
+      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
+                     s.prev_length - MIN_MATCH, bflush);***/
+      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
+      /* Insert in hash table all strings up to the end of the match.
+       * strstart-1 and strstart are already inserted. If there is not
+       * enough lookahead, the last two strings are not inserted in
+       * the hash table.
+       */
+      s.lookahead -= s.prev_length - 1;
+      s.prev_length -= 2;
+      do {
+        if (++s.strstart <= max_insert) {
+          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
+          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
+          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+          s.head[s.ins_h] = s.strstart;
+          /***/
+        }
+      } while (--s.prev_length !== 0);
+      s.match_available = 0;
+      s.match_length = MIN_MATCH - 1;
+      s.strstart++;
+
+      if (bflush) {
+        /*** FLUSH_BLOCK(s, 0); ***/
+        flush_block_only(s, false);
+        if (s.strm.avail_out === 0) {
+          return BS_NEED_MORE;
+        }
+        /***/
+      }
+
+    } else if (s.match_available) {
+      /* If there was no match at the previous position, output a
+       * single literal. If there was a match but the current match
+       * is longer, truncate the previous match to a single literal.
+       */
+      //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+      if (bflush) {
+        /*** FLUSH_BLOCK_ONLY(s, 0) ***/
+        flush_block_only(s, false);
+        /***/
+      }
+      s.strstart++;
+      s.lookahead--;
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+    } else {
+      /* There is no previous match to compare with, wait for
+       * the next step to decide.
+       */
+      s.match_available = 1;
+      s.strstart++;
+      s.lookahead--;
+    }
+  }
+  //Assert (flush != Z_NO_FLUSH, "no flush?");
+  if (s.match_available) {
+    //Tracevv((stderr,"%c", s->window[s->strstart-1]));
+    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
+
+    s.match_available = 0;
+  }
+  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+
+  return BS_BLOCK_DONE;
+}
+
+
+/* ===========================================================================
+ * For Z_RLE, simply look for runs of bytes, generate matches only of distance
+ * one.  Do not maintain a hash table.  (It will be regenerated if this run of
+ * deflate switches away from Z_RLE.)
+ */
+function deflate_rle(s, flush) {
+  var bflush;            /* set if current block must be flushed */
+  var prev;              /* byte at distance one to match */
+  var scan, strend;      /* scan goes up to strend for length of run */
+
+  var _win = s.window;
+
+  for (;;) {
+    /* Make sure that we always have enough lookahead, except
+     * at the end of the input file. We need MAX_MATCH bytes
+     * for the longest run, plus one for the unrolled loop.
+     */
+    if (s.lookahead <= MAX_MATCH) {
+      fill_window(s);
+      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
+        return BS_NEED_MORE;
+      }
+      if (s.lookahead === 0) { break; } /* flush the current block */
+    }
+
+    /* See how many times the previous byte repeats */
+    s.match_length = 0;
+    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
+      scan = s.strstart - 1;
+      prev = _win[scan];
+      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
+        strend = s.strstart + MAX_MATCH;
+        do {
+          /*jshint noempty:false*/
+        } while (prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 prev === _win[++scan] && prev === _win[++scan] &&
+                 scan < strend);
+        s.match_length = MAX_MATCH - (strend - scan);
+        if (s.match_length > s.lookahead) {
+          s.match_length = s.lookahead;
+        }
+      }
+      //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
+    }
+
+    /* Emit match if have run of MIN_MATCH or longer, else emit literal */
+    if (s.match_length >= MIN_MATCH) {
+      //check_match(s, s.strstart, s.strstart - 1, s.match_length);
+
+      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
+      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
+
+      s.lookahead -= s.match_length;
+      s.strstart += s.match_length;
+      s.match_length = 0;
+    } else {
+      /* No match, output a literal byte */
+      //Tracevv((stderr,"%c", s->window[s->strstart]));
+      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+
+      s.lookahead--;
+      s.strstart++;
+    }
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* ===========================================================================
+ * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
+ * (It will be regenerated if this run of deflate switches away from Huffman.)
+ */
+function deflate_huff(s, flush) {
+  var bflush;             /* set if current block must be flushed */
+
+  for (;;) {
+    /* Make sure that we have a literal to write. */
+    if (s.lookahead === 0) {
+      fill_window(s);
+      if (s.lookahead === 0) {
+        if (flush === Z_NO_FLUSH) {
+          return BS_NEED_MORE;
+        }
+        break;      /* flush the current block */
+      }
+    }
+
+    /* Output a literal byte */
+    s.match_length = 0;
+    //Tracevv((stderr,"%c", s->window[s->strstart]));
+    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
+    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
+    s.lookahead--;
+    s.strstart++;
+    if (bflush) {
+      /*** FLUSH_BLOCK(s, 0); ***/
+      flush_block_only(s, false);
+      if (s.strm.avail_out === 0) {
+        return BS_NEED_MORE;
+      }
+      /***/
+    }
+  }
+  s.insert = 0;
+  if (flush === Z_FINISH) {
+    /*** FLUSH_BLOCK(s, 1); ***/
+    flush_block_only(s, true);
+    if (s.strm.avail_out === 0) {
+      return BS_FINISH_STARTED;
+    }
+    /***/
+    return BS_FINISH_DONE;
+  }
+  if (s.last_lit) {
+    /*** FLUSH_BLOCK(s, 0); ***/
+    flush_block_only(s, false);
+    if (s.strm.avail_out === 0) {
+      return BS_NEED_MORE;
+    }
+    /***/
+  }
+  return BS_BLOCK_DONE;
+}
+
+/* Values for max_lazy_match, good_match and max_chain_length, depending on
+ * the desired pack level (0..9). The values given below have been tuned to
+ * exclude worst case performance for pathological files. Better values may be
+ * found for specific files.
+ */
+function Config(good_length, max_lazy, nice_length, max_chain, func) {
+  this.good_length = good_length;
+  this.max_lazy = max_lazy;
+  this.nice_length = nice_length;
+  this.max_chain = max_chain;
+  this.func = func;
+}
+
+var configuration_table;
+
+configuration_table = [
+  /*      good lazy nice chain */
+  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */
+  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */
+  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */
+  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */
+
+  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */
+  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */
+  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */
+  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */
+  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */
+  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */
+];
+
+
+/* ===========================================================================
+ * Initialize the "longest match" routines for a new zlib stream
+ */
+function lm_init(s) {
+  s.window_size = 2 * s.w_size;
+
+  /*** CLEAR_HASH(s); ***/
+  zero(s.head); // Fill with NIL (= 0);
+
+  /* Set the default configuration parameters:
+   */
+  s.max_lazy_match = configuration_table[s.level].max_lazy;
+  s.good_match = configuration_table[s.level].good_length;
+  s.nice_match = configuration_table[s.level].nice_length;
+  s.max_chain_length = configuration_table[s.level].max_chain;
+
+  s.strstart = 0;
+  s.block_start = 0;
+  s.lookahead = 0;
+  s.insert = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  s.ins_h = 0;
+}
+
+
+function DeflateState() {
+  this.strm = null;            /* pointer back to this zlib stream */
+  this.status = 0;            /* as the name implies */
+  this.pending_buf = null;      /* output still pending */
+  this.pending_buf_size = 0;  /* size of pending_buf */
+  this.pending_out = 0;       /* next pending byte to output to the stream */
+  this.pending = 0;           /* nb of bytes in the pending buffer */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.gzhead = null;         /* gzip header information to write */
+  this.gzindex = 0;           /* where in extra, name, or comment */
+  this.method = Z_DEFLATED; /* can only be DEFLATED */
+  this.last_flush = -1;   /* value of flush param for previous deflate call */
+
+  this.w_size = 0;  /* LZ77 window size (32K by default) */
+  this.w_bits = 0;  /* log2(w_size)  (8..16) */
+  this.w_mask = 0;  /* w_size - 1 */
+
+  this.window = null;
+  /* Sliding window. Input bytes are read into the second half of the window,
+   * and move to the first half later to keep a dictionary of at least wSize
+   * bytes. With this organization, matches are limited to a distance of
+   * wSize-MAX_MATCH bytes, but this ensures that IO is always
+   * performed with a length multiple of the block size.
+   */
+
+  this.window_size = 0;
+  /* Actual size of window: 2*wSize, except when the user input buffer
+   * is directly used as sliding window.
+   */
+
+  this.prev = null;
+  /* Link to older string with same hash index. To limit the size of this
+   * array to 64K, this link is maintained only for the last 32K strings.
+   * An index in this array is thus a window index modulo 32K.
+   */
+
+  this.head = null;   /* Heads of the hash chains or NIL. */
+
+  this.ins_h = 0;       /* hash index of string to be inserted */
+  this.hash_size = 0;   /* number of elements in hash table */
+  this.hash_bits = 0;   /* log2(hash_size) */
+  this.hash_mask = 0;   /* hash_size-1 */
+
+  this.hash_shift = 0;
+  /* Number of bits by which ins_h must be shifted at each input
+   * step. It must be such that after MIN_MATCH steps, the oldest
+   * byte no longer takes part in the hash key, that is:
+   *   hash_shift * MIN_MATCH >= hash_bits
+   */
+
+  this.block_start = 0;
+  /* Window position at the beginning of the current output block. Gets
+   * negative when the window is moved backwards.
+   */
+
+  this.match_length = 0;      /* length of best match */
+  this.prev_match = 0;        /* previous match */
+  this.match_available = 0;   /* set if previous match exists */
+  this.strstart = 0;          /* start of string to insert */
+  this.match_start = 0;       /* start of matching string */
+  this.lookahead = 0;         /* number of valid bytes ahead in window */
+
+  this.prev_length = 0;
+  /* Length of the best match at previous step. Matches not greater than this
+   * are discarded. This is used in the lazy match evaluation.
+   */
+
+  this.max_chain_length = 0;
+  /* To speed up deflation, hash chains are never searched beyond this
+   * length.  A higher limit improves compression ratio but degrades the
+   * speed.
+   */
+
+  this.max_lazy_match = 0;
+  /* Attempt to find a better match only when the current match is strictly
+   * smaller than this value. This mechanism is used only for compression
+   * levels >= 4.
+   */
+  // That's alias to max_lazy_match, don't use directly
+  //this.max_insert_length = 0;
+  /* Insert new strings in the hash table only if the match length is not
+   * greater than this length. This saves time but degrades compression.
+   * max_insert_length is used only for compression levels <= 3.
+   */
+
+  this.level = 0;     /* compression level (1..9) */
+  this.strategy = 0;  /* favor or force Huffman coding*/
+
+  this.good_match = 0;
+  /* Use a faster search when the previous match is longer than this */
+
+  this.nice_match = 0; /* Stop searching when current match exceeds this */
+
+              /* used by trees.c: */
+
+  /* Didn't use ct_data typedef below to suppress compiler warning */
+
+  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
+  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
+  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
+
+  // Use flat array of DOUBLE size, with interleaved fata,
+  // because JS does not support effective
+  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);
+  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);
+  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);
+  zero(this.dyn_ltree);
+  zero(this.dyn_dtree);
+  zero(this.bl_tree);
+
+  this.l_desc   = null;         /* desc. for literal tree */
+  this.d_desc   = null;         /* desc. for distance tree */
+  this.bl_desc  = null;         /* desc. for bit length tree */
+
+  //ush bl_count[MAX_BITS+1];
+  this.bl_count = new utils.Buf16(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
+  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */
+  zero(this.heap);
+
+  this.heap_len = 0;               /* number of elements in the heap */
+  this.heap_max = 0;               /* element of largest frequency */
+  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
+   * The same heap array is used to build all trees.
+   */
+
+  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];
+  zero(this.depth);
+  /* Depth of each subtree used as tie breaker for trees of equal frequency
+   */
+
+  this.l_buf = 0;          /* buffer index for literals or lengths */
+
+  this.lit_bufsize = 0;
+  /* Size of match buffer for literals/lengths.  There are 4 reasons for
+   * limiting lit_bufsize to 64K:
+   *   - frequencies can be kept in 16 bit counters
+   *   - if compression is not successful for the first block, all input
+   *     data is still in the window so we can still emit a stored block even
+   *     when input comes from standard input.  (This can also be done for
+   *     all blocks if lit_bufsize is not greater than 32K.)
+   *   - if compression is not successful for a file smaller than 64K, we can
+   *     even emit a stored file instead of a stored block (saving 5 bytes).
+   *     This is applicable only for zip (not gzip or zlib).
+   *   - creating new Huffman trees less frequently may not provide fast
+   *     adaptation to changes in the input data statistics. (Take for
+   *     example a binary file with poorly compressible code followed by
+   *     a highly compressible string table.) Smaller buffer sizes give
+   *     fast adaptation but have of course the overhead of transmitting
+   *     trees more frequently.
+   *   - I can't count above 4
+   */
+
+  this.last_lit = 0;      /* running index in l_buf */
+
+  this.d_buf = 0;
+  /* Buffer index for distances. To simplify the code, d_buf and l_buf have
+   * the same number of elements. To use different lengths, an extra flag
+   * array would be necessary.
+   */
+
+  this.opt_len = 0;       /* bit length of current block with optimal trees */
+  this.static_len = 0;    /* bit length of current block with static trees */
+  this.matches = 0;       /* number of string matches in current block */
+  this.insert = 0;        /* bytes at end of window left to insert */
+
+
+  this.bi_buf = 0;
+  /* Output buffer. bits are inserted starting at the bottom (least
+   * significant bits).
+   */
+  this.bi_valid = 0;
+  /* Number of valid bits in bi_buf.  All bits above the last valid bit
+   * are always zero.
+   */
+
+  // Used for window memory init. We safely ignore it for JS. That makes
+  // sense only for pointers and memory check tools.
+  //this.high_water = 0;
+  /* High water mark offset in window for initialized bytes -- bytes above
+   * this are set to zero in order to avoid memory check warnings when
+   * longest match routines access bytes past the input.  This is then
+   * updated to the new high water mark.
+   */
+}
+
+
+function deflateResetKeep(strm) {
+  var s;
+
+  if (!strm || !strm.state) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.total_in = strm.total_out = 0;
+  strm.data_type = Z_UNKNOWN;
+
+  s = strm.state;
+  s.pending = 0;
+  s.pending_out = 0;
+
+  if (s.wrap < 0) {
+    s.wrap = -s.wrap;
+    /* was made negative by deflate(..., Z_FINISH); */
+  }
+  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);
+  strm.adler = (s.wrap === 2) ?
+    0  // crc32(0, Z_NULL, 0)
+  :
+    1; // adler32(0, Z_NULL, 0)
+  s.last_flush = Z_NO_FLUSH;
+  trees._tr_init(s);
+  return Z_OK;
+}
+
+
+function deflateReset(strm) {
+  var ret = deflateResetKeep(strm);
+  if (ret === Z_OK) {
+    lm_init(strm.state);
+  }
+  return ret;
+}
+
+
+function deflateSetHeader(strm, head) {
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }
+  strm.state.gzhead = head;
+  return Z_OK;
+}
+
+
+function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
+  if (!strm) { // === Z_NULL
+    return Z_STREAM_ERROR;
+  }
+  var wrap = 1;
+
+  if (level === Z_DEFAULT_COMPRESSION) {
+    level = 6;
+  }
+
+  if (windowBits < 0) { /* suppress zlib wrapper */
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+
+  else if (windowBits > 15) {
+    wrap = 2;           /* write gzip wrapper instead */
+    windowBits -= 16;
+  }
+
+
+  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||
+    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
+    strategy < 0 || strategy > Z_FIXED) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+
+  if (windowBits === 8) {
+    windowBits = 9;
+  }
+  /* until 256-byte window bug fixed */
+
+  var s = new DeflateState();
+
+  strm.state = s;
+  s.strm = strm;
+
+  s.wrap = wrap;
+  s.gzhead = null;
+  s.w_bits = windowBits;
+  s.w_size = 1 << s.w_bits;
+  s.w_mask = s.w_size - 1;
+
+  s.hash_bits = memLevel + 7;
+  s.hash_size = 1 << s.hash_bits;
+  s.hash_mask = s.hash_size - 1;
+  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
+
+  s.window = new utils.Buf8(s.w_size * 2);
+  s.head = new utils.Buf16(s.hash_size);
+  s.prev = new utils.Buf16(s.w_size);
+
+  // Don't need mem init magic for JS.
+  //s.high_water = 0;  /* nothing written to s->window yet */
+
+  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
+
+  s.pending_buf_size = s.lit_bufsize * 4;
+
+  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
+  //s->pending_buf = (uchf *) overlay;
+  s.pending_buf = new utils.Buf8(s.pending_buf_size);
+
+  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)
+  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
+  s.d_buf = 1 * s.lit_bufsize;
+
+  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
+  s.l_buf = (1 + 2) * s.lit_bufsize;
+
+  s.level = level;
+  s.strategy = strategy;
+  s.method = method;
+
+  return deflateReset(strm);
+}
+
+function deflateInit(strm, level) {
+  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
+}
+
+
+function deflate(strm, flush) {
+  var old_flush, s;
+  var beg, val; // for gzip header write only
+
+  if (!strm || !strm.state ||
+    flush > Z_BLOCK || flush < 0) {
+    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+
+  if (!strm.output ||
+      (!strm.input && strm.avail_in !== 0) ||
+      (s.status === FINISH_STATE && flush !== Z_FINISH)) {
+    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);
+  }
+
+  s.strm = strm; /* just in case */
+  old_flush = s.last_flush;
+  s.last_flush = flush;
+
+  /* Write the header */
+  if (s.status === INIT_STATE) {
+
+    if (s.wrap === 2) { // GZIP header
+      strm.adler = 0;  //crc32(0L, Z_NULL, 0);
+      put_byte(s, 31);
+      put_byte(s, 139);
+      put_byte(s, 8);
+      if (!s.gzhead) { // s->gzhead == Z_NULL
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, 0);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, OS_CODE);
+        s.status = BUSY_STATE;
+      }
+      else {
+        put_byte(s, (s.gzhead.text ? 1 : 0) +
+                    (s.gzhead.hcrc ? 2 : 0) +
+                    (!s.gzhead.extra ? 0 : 4) +
+                    (!s.gzhead.name ? 0 : 8) +
+                    (!s.gzhead.comment ? 0 : 16)
+                );
+        put_byte(s, s.gzhead.time & 0xff);
+        put_byte(s, (s.gzhead.time >> 8) & 0xff);
+        put_byte(s, (s.gzhead.time >> 16) & 0xff);
+        put_byte(s, (s.gzhead.time >> 24) & 0xff);
+        put_byte(s, s.level === 9 ? 2 :
+                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
+                     4 : 0));
+        put_byte(s, s.gzhead.os & 0xff);
+        if (s.gzhead.extra && s.gzhead.extra.length) {
+          put_byte(s, s.gzhead.extra.length & 0xff);
+          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);
+        }
+        if (s.gzhead.hcrc) {
+          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
+        }
+        s.gzindex = 0;
+        s.status = EXTRA_STATE;
+      }
+    }
+    else // DEFLATE header
+    {
+      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
+      var level_flags = -1;
+
+      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
+        level_flags = 0;
+      } else if (s.level < 6) {
+        level_flags = 1;
+      } else if (s.level === 6) {
+        level_flags = 2;
+      } else {
+        level_flags = 3;
+      }
+      header |= (level_flags << 6);
+      if (s.strstart !== 0) { header |= PRESET_DICT; }
+      header += 31 - (header % 31);
+
+      s.status = BUSY_STATE;
+      putShortMSB(s, header);
+
+      /* Save the adler32 of the preset dictionary: */
+      if (s.strstart !== 0) {
+        putShortMSB(s, strm.adler >>> 16);
+        putShortMSB(s, strm.adler & 0xffff);
+      }
+      strm.adler = 1; // adler32(0L, Z_NULL, 0);
+    }
+  }
+
+//#ifdef GZIP
+  if (s.status === EXTRA_STATE) {
+    if (s.gzhead.extra/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+
+      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            break;
+          }
+        }
+        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);
+        s.gzindex++;
+      }
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (s.gzindex === s.gzhead.extra.length) {
+        s.gzindex = 0;
+        s.status = NAME_STATE;
+      }
+    }
+    else {
+      s.status = NAME_STATE;
+    }
+  }
+  if (s.status === NAME_STATE) {
+    if (s.gzhead.name/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.name.length) {
+          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.gzindex = 0;
+        s.status = COMMENT_STATE;
+      }
+    }
+    else {
+      s.status = COMMENT_STATE;
+    }
+  }
+  if (s.status === COMMENT_STATE) {
+    if (s.gzhead.comment/* != Z_NULL*/) {
+      beg = s.pending;  /* start of bytes to update crc */
+      //int val;
+
+      do {
+        if (s.pending === s.pending_buf_size) {
+          if (s.gzhead.hcrc && s.pending > beg) {
+            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+          }
+          flush_pending(strm);
+          beg = s.pending;
+          if (s.pending === s.pending_buf_size) {
+            val = 1;
+            break;
+          }
+        }
+        // JS specific: little magic to add zero terminator to end of string
+        if (s.gzindex < s.gzhead.comment.length) {
+          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;
+        } else {
+          val = 0;
+        }
+        put_byte(s, val);
+      } while (val !== 0);
+
+      if (s.gzhead.hcrc && s.pending > beg) {
+        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+      }
+      if (val === 0) {
+        s.status = HCRC_STATE;
+      }
+    }
+    else {
+      s.status = HCRC_STATE;
+    }
+  }
+  if (s.status === HCRC_STATE) {
+    if (s.gzhead.hcrc) {
+      if (s.pending + 2 > s.pending_buf_size) {
+        flush_pending(strm);
+      }
+      if (s.pending + 2 <= s.pending_buf_size) {
+        put_byte(s, strm.adler & 0xff);
+        put_byte(s, (strm.adler >> 8) & 0xff);
+        strm.adler = 0; //crc32(0L, Z_NULL, 0);
+        s.status = BUSY_STATE;
+      }
+    }
+    else {
+      s.status = BUSY_STATE;
+    }
+  }
+//#endif
+
+  /* Flush as much pending output as possible */
+  if (s.pending !== 0) {
+    flush_pending(strm);
+    if (strm.avail_out === 0) {
+      /* Since avail_out is 0, deflate will be called again with
+       * more output space, but possibly with both pending and
+       * avail_in equal to zero. There won't be anything to do,
+       * but this is not an error situation so make sure we
+       * return OK instead of BUF_ERROR at next call of deflate:
+       */
+      s.last_flush = -1;
+      return Z_OK;
+    }
+
+    /* Make sure there is something to do and avoid duplicate consecutive
+     * flushes. For repeated and useless calls with Z_FINISH, we keep
+     * returning Z_STREAM_END instead of Z_BUF_ERROR.
+     */
+  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&
+    flush !== Z_FINISH) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* User must not provide more input after the first FINISH: */
+  if (s.status === FINISH_STATE && strm.avail_in !== 0) {
+    return err(strm, Z_BUF_ERROR);
+  }
+
+  /* Start a new block or continue the current one.
+   */
+  if (strm.avail_in !== 0 || s.lookahead !== 0 ||
+    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
+    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :
+      (s.strategy === Z_RLE ? deflate_rle(s, flush) :
+        configuration_table[s.level].func(s, flush));
+
+    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
+      s.status = FINISH_STATE;
+    }
+    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
+      if (strm.avail_out === 0) {
+        s.last_flush = -1;
+        /* avoid BUF_ERROR next call, see above */
+      }
+      return Z_OK;
+      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
+       * of deflate should use the same flush parameter to make sure
+       * that the flush is complete. So we don't have to output an
+       * empty block here, this will be done at next call. This also
+       * ensures that for a very small output buffer, we emit at most
+       * one empty block.
+       */
+    }
+    if (bstate === BS_BLOCK_DONE) {
+      if (flush === Z_PARTIAL_FLUSH) {
+        trees._tr_align(s);
+      }
+      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
+
+        trees._tr_stored_block(s, 0, 0, false);
+        /* For a full flush, this empty block will be recognized
+         * as a special marker by inflate_sync().
+         */
+        if (flush === Z_FULL_FLUSH) {
+          /*** CLEAR_HASH(s); ***/             /* forget history */
+          zero(s.head); // Fill with NIL (= 0);
+
+          if (s.lookahead === 0) {
+            s.strstart = 0;
+            s.block_start = 0;
+            s.insert = 0;
+          }
+        }
+      }
+      flush_pending(strm);
+      if (strm.avail_out === 0) {
+        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */
+        return Z_OK;
+      }
+    }
+  }
+  //Assert(strm->avail_out > 0, "bug2");
+  //if (strm.avail_out <= 0) { throw new Error("bug2");}
+
+  if (flush !== Z_FINISH) { return Z_OK; }
+  if (s.wrap <= 0) { return Z_STREAM_END; }
+
+  /* Write the trailer */
+  if (s.wrap === 2) {
+    put_byte(s, strm.adler & 0xff);
+    put_byte(s, (strm.adler >> 8) & 0xff);
+    put_byte(s, (strm.adler >> 16) & 0xff);
+    put_byte(s, (strm.adler >> 24) & 0xff);
+    put_byte(s, strm.total_in & 0xff);
+    put_byte(s, (strm.total_in >> 8) & 0xff);
+    put_byte(s, (strm.total_in >> 16) & 0xff);
+    put_byte(s, (strm.total_in >> 24) & 0xff);
+  }
+  else
+  {
+    putShortMSB(s, strm.adler >>> 16);
+    putShortMSB(s, strm.adler & 0xffff);
+  }
+
+  flush_pending(strm);
+  /* If avail_out is zero, the application will call deflate again
+   * to flush the rest.
+   */
+  if (s.wrap > 0) { s.wrap = -s.wrap; }
+  /* write the trailer only once! */
+  return s.pending !== 0 ? Z_OK : Z_STREAM_END;
+}
+
+function deflateEnd(strm) {
+  var status;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  status = strm.state.status;
+  if (status !== INIT_STATE &&
+    status !== EXTRA_STATE &&
+    status !== NAME_STATE &&
+    status !== COMMENT_STATE &&
+    status !== HCRC_STATE &&
+    status !== BUSY_STATE &&
+    status !== FINISH_STATE
+  ) {
+    return err(strm, Z_STREAM_ERROR);
+  }
+
+  strm.state = null;
+
+  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
+}
+
+
+/* =========================================================================
+ * Initializes the compression dictionary from the given byte
+ * sequence without producing any compressed output.
+ */
+function deflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var s;
+  var str, n;
+  var wrap;
+  var avail;
+  var next;
+  var input;
+  var tmpDict;
+
+  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  s = strm.state;
+  wrap = s.wrap;
+
+  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* when using zlib wrappers, compute Adler-32 for provided dictionary */
+  if (wrap === 1) {
+    /* adler32(strm->adler, dictionary, dictLength); */
+    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
+  }
+
+  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */
+
+  /* if dictionary would fill window, just replace the history */
+  if (dictLength >= s.w_size) {
+    if (wrap === 0) {            /* already empty otherwise */
+      /*** CLEAR_HASH(s); ***/
+      zero(s.head); // Fill with NIL (= 0);
+      s.strstart = 0;
+      s.block_start = 0;
+      s.insert = 0;
+    }
+    /* use the tail */
+    // dictionary = dictionary.slice(dictLength - s.w_size);
+    tmpDict = new utils.Buf8(s.w_size);
+    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
+    dictionary = tmpDict;
+    dictLength = s.w_size;
+  }
+  /* insert dictionary into window and hash */
+  avail = strm.avail_in;
+  next = strm.next_in;
+  input = strm.input;
+  strm.avail_in = dictLength;
+  strm.next_in = 0;
+  strm.input = dictionary;
+  fill_window(s);
+  while (s.lookahead >= MIN_MATCH) {
+    str = s.strstart;
+    n = s.lookahead - (MIN_MATCH - 1);
+    do {
+      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
+      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
+
+      s.prev[str & s.w_mask] = s.head[s.ins_h];
+
+      s.head[s.ins_h] = str;
+      str++;
+    } while (--n);
+    s.strstart = str;
+    s.lookahead = MIN_MATCH - 1;
+    fill_window(s);
+  }
+  s.strstart += s.lookahead;
+  s.block_start = s.strstart;
+  s.insert = s.lookahead;
+  s.lookahead = 0;
+  s.match_length = s.prev_length = MIN_MATCH - 1;
+  s.match_available = 0;
+  strm.next_in = next;
+  strm.input = input;
+  strm.avail_in = avail;
+  s.wrap = wrap;
+  return Z_OK;
+}
+
+
+exports.deflateInit = deflateInit;
+exports.deflateInit2 = deflateInit2;
+exports.deflateReset = deflateReset;
+exports.deflateResetKeep = deflateResetKeep;
+exports.deflateSetHeader = deflateSetHeader;
+exports.deflate = deflate;
+exports.deflateEnd = deflateEnd;
+exports.deflateSetDictionary = deflateSetDictionary;
+exports.deflateInfo = 'pako deflate (from Nodeca project)';
+
+/* Not implemented
+exports.deflateBound = deflateBound;
+exports.deflateCopy = deflateCopy;
+exports.deflateParams = deflateParams;
+exports.deflatePending = deflatePending;
+exports.deflatePrime = deflatePrime;
+exports.deflateTune = deflateTune;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function GZheader() {
+  /* true if compressed data believed to be text */
+  this.text       = 0;
+  /* modification time */
+  this.time       = 0;
+  /* extra flags (not used when writing a gzip file) */
+  this.xflags     = 0;
+  /* operating system */
+  this.os         = 0;
+  /* pointer to extra field or Z_NULL if none */
+  this.extra      = null;
+  /* extra field length (valid if extra != Z_NULL) */
+  this.extra_len  = 0; // Actually, we don't need it in JS,
+                       // but leave for few code modifications
+
+  //
+  // Setup limits is not necessary because in js we should not preallocate memory
+  // for inflate use constant limit in 65536 bytes
+  //
+
+  /* space at extra (only when reading header) */
+  // this.extra_max  = 0;
+  /* pointer to zero-terminated file name or Z_NULL */
+  this.name       = '';
+  /* space at name (only when reading header) */
+  // this.name_max   = 0;
+  /* pointer to zero-terminated comment or Z_NULL */
+  this.comment    = '';
+  /* space at comment (only when reading header) */
+  // this.comm_max   = 0;
+  /* true if there was or will be a header crc */
+  this.hcrc       = 0;
+  /* true when done reading gzip header (not used when writing a gzip file) */
+  this.done       = false;
+}
+
+module.exports = GZheader;
+
+},{}],69:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+// See state defs from inflate.js
+var BAD = 30;       /* got a data error -- remain here until reset */
+var TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+
+/*
+   Decode literal, length, and distance codes and write out the resulting
+   literal and match bytes until either not enough input or output is
+   available, an end-of-block is encountered, or a data error is encountered.
+   When large enough input and output buffers are supplied to inflate(), for
+   example, a 16K input buffer and a 64K output buffer, more than 95% of the
+   inflate execution time is spent in this routine.
+
+   Entry assumptions:
+
+        state.mode === LEN
+        strm.avail_in >= 6
+        strm.avail_out >= 258
+        start >= strm.avail_out
+        state.bits < 8
+
+   On return, state.mode is one of:
+
+        LEN -- ran out of enough output space or enough available input
+        TYPE -- reached end of block code, inflate() to interpret next block
+        BAD -- error in block data
+
+   Notes:
+
+    - The maximum input bits used by a length/distance pair is 15 bits for the
+      length code, 5 bits for the length extra, 15 bits for the distance code,
+      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
+      Therefore if strm.avail_in >= 6, then there is enough input to avoid
+      checking for available input while decoding.
+
+    - The maximum bytes that a single length/distance pair can output is 258
+      bytes, which is the maximum length that can be coded.  inflate_fast()
+      requires strm.avail_out >= 258 for each loop to avoid checking for
+      output space.
+ */
+module.exports = function inflate_fast(strm, start) {
+  var state;
+  var _in;                    /* local strm.input */
+  var last;                   /* have enough input while in < last */
+  var _out;                   /* local strm.output */
+  var beg;                    /* inflate()'s initial strm.output */
+  var end;                    /* while out < end, enough space available */
+//#ifdef INFLATE_STRICT
+  var dmax;                   /* maximum distance from zlib header */
+//#endif
+  var wsize;                  /* window size or zero if not using window */
+  var whave;                  /* valid bytes in the window */
+  var wnext;                  /* window write index */
+  // Use `s_window` instead `window`, avoid conflict with instrumentation tools
+  var s_window;               /* allocated sliding window, if wsize != 0 */
+  var hold;                   /* local strm.hold */
+  var bits;                   /* local strm.bits */
+  var lcode;                  /* local strm.lencode */
+  var dcode;                  /* local strm.distcode */
+  var lmask;                  /* mask for first level of length codes */
+  var dmask;                  /* mask for first level of distance codes */
+  var here;                   /* retrieved table entry */
+  var op;                     /* code bits, operation, extra bits, or */
+                              /*  window position, window bytes to copy */
+  var len;                    /* match length, unused bytes */
+  var dist;                   /* match distance */
+  var from;                   /* where to copy match from */
+  var from_source;
+
+
+  var input, output; // JS specific, because we have no pointers
+
+  /* copy state to local variables */
+  state = strm.state;
+  //here = state.here;
+  _in = strm.next_in;
+  input = strm.input;
+  last = _in + (strm.avail_in - 5);
+  _out = strm.next_out;
+  output = strm.output;
+  beg = _out - (start - strm.avail_out);
+  end = _out + (strm.avail_out - 257);
+//#ifdef INFLATE_STRICT
+  dmax = state.dmax;
+//#endif
+  wsize = state.wsize;
+  whave = state.whave;
+  wnext = state.wnext;
+  s_window = state.window;
+  hold = state.hold;
+  bits = state.bits;
+  lcode = state.lencode;
+  dcode = state.distcode;
+  lmask = (1 << state.lenbits) - 1;
+  dmask = (1 << state.distbits) - 1;
+
+
+  /* decode literals and length/distances until end-of-block or not enough
+     input data or output space */
+
+  top:
+  do {
+    if (bits < 15) {
+      hold += input[_in++] << bits;
+      bits += 8;
+      hold += input[_in++] << bits;
+      bits += 8;
+    }
+
+    here = lcode[hold & lmask];
+
+    dolen:
+    for (;;) { // Goto emulation
+      op = here >>> 24/*here.bits*/;
+      hold >>>= op;
+      bits -= op;
+      op = (here >>> 16) & 0xff/*here.op*/;
+      if (op === 0) {                          /* literal */
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        output[_out++] = here & 0xffff/*here.val*/;
+      }
+      else if (op & 16) {                     /* length base */
+        len = here & 0xffff/*here.val*/;
+        op &= 15;                           /* number of extra bits */
+        if (op) {
+          if (bits < op) {
+            hold += input[_in++] << bits;
+            bits += 8;
+          }
+          len += hold & ((1 << op) - 1);
+          hold >>>= op;
+          bits -= op;
+        }
+        //Tracevv((stderr, "inflate:         length %u\n", len));
+        if (bits < 15) {
+          hold += input[_in++] << bits;
+          bits += 8;
+          hold += input[_in++] << bits;
+          bits += 8;
+        }
+        here = dcode[hold & dmask];
+
+        dodist:
+        for (;;) { // goto emulation
+          op = here >>> 24/*here.bits*/;
+          hold >>>= op;
+          bits -= op;
+          op = (here >>> 16) & 0xff/*here.op*/;
+
+          if (op & 16) {                      /* distance base */
+            dist = here & 0xffff/*here.val*/;
+            op &= 15;                       /* number of extra bits */
+            if (bits < op) {
+              hold += input[_in++] << bits;
+              bits += 8;
+              if (bits < op) {
+                hold += input[_in++] << bits;
+                bits += 8;
+              }
+            }
+            dist += hold & ((1 << op) - 1);
+//#ifdef INFLATE_STRICT
+            if (dist > dmax) {
+              strm.msg = 'invalid distance too far back';
+              state.mode = BAD;
+              break top;
+            }
+//#endif
+            hold >>>= op;
+            bits -= op;
+            //Tracevv((stderr, "inflate:         distance %u\n", dist));
+            op = _out - beg;                /* max distance in output */
+            if (dist > op) {                /* see if copy from window */
+              op = dist - op;               /* distance back in window */
+              if (op > whave) {
+                if (state.sane) {
+                  strm.msg = 'invalid distance too far back';
+                  state.mode = BAD;
+                  break top;
+                }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//                if (len <= op - whave) {
+//                  do {
+//                    output[_out++] = 0;
+//                  } while (--len);
+//                  continue top;
+//                }
+//                len -= op - whave;
+//                do {
+//                  output[_out++] = 0;
+//                } while (--op > whave);
+//                if (op === 0) {
+//                  from = _out - dist;
+//                  do {
+//                    output[_out++] = output[from++];
+//                  } while (--len);
+//                  continue top;
+//                }
+//#endif
+              }
+              from = 0; // window index
+              from_source = s_window;
+              if (wnext === 0) {           /* very common case */
+                from += wsize - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              else if (wnext < op) {      /* wrap around window */
+                from += wsize + wnext - op;
+                op -= wnext;
+                if (op < len) {         /* some from end of window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = 0;
+                  if (wnext < len) {  /* some from start of window */
+                    op = wnext;
+                    len -= op;
+                    do {
+                      output[_out++] = s_window[from++];
+                    } while (--op);
+                    from = _out - dist;      /* rest from output */
+                    from_source = output;
+                  }
+                }
+              }
+              else {                      /* contiguous in window */
+                from += wnext - op;
+                if (op < len) {         /* some from window */
+                  len -= op;
+                  do {
+                    output[_out++] = s_window[from++];
+                  } while (--op);
+                  from = _out - dist;  /* rest from output */
+                  from_source = output;
+                }
+              }
+              while (len > 2) {
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                output[_out++] = from_source[from++];
+                len -= 3;
+              }
+              if (len) {
+                output[_out++] = from_source[from++];
+                if (len > 1) {
+                  output[_out++] = from_source[from++];
+                }
+              }
+            }
+            else {
+              from = _out - dist;          /* copy direct from output */
+              do {                        /* minimum length is three */
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                output[_out++] = output[from++];
+                len -= 3;
+              } while (len > 2);
+              if (len) {
+                output[_out++] = output[from++];
+                if (len > 1) {
+                  output[_out++] = output[from++];
+                }
+              }
+            }
+          }
+          else if ((op & 64) === 0) {          /* 2nd level distance code */
+            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+            continue dodist;
+          }
+          else {
+            strm.msg = 'invalid distance code';
+            state.mode = BAD;
+            break top;
+          }
+
+          break; // need to emulate goto via "continue"
+        }
+      }
+      else if ((op & 64) === 0) {              /* 2nd level length code */
+        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
+        continue dolen;
+      }
+      else if (op & 32) {                     /* end-of-block */
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.mode = TYPE;
+        break top;
+      }
+      else {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break top;
+      }
+
+      break; // need to emulate goto via "continue"
+    }
+  } while (_in < last && _out < end);
+
+  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
+  len = bits >> 3;
+  _in -= len;
+  bits -= len << 3;
+  hold &= (1 << bits) - 1;
+
+  /* update state and return */
+  strm.next_in = _in;
+  strm.next_out = _out;
+  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));
+  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));
+  state.hold = hold;
+  state.bits = bits;
+  return;
+};
+
+},{}],70:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils         = require('../utils/common');
+var adler32       = require('./adler32');
+var crc32         = require('./crc32');
+var inflate_fast  = require('./inffast');
+var inflate_table = require('./inftrees');
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+/* Allowed flush values; see deflate() and inflate() below for details */
+//var Z_NO_FLUSH      = 0;
+//var Z_PARTIAL_FLUSH = 1;
+//var Z_SYNC_FLUSH    = 2;
+//var Z_FULL_FLUSH    = 3;
+var Z_FINISH        = 4;
+var Z_BLOCK         = 5;
+var Z_TREES         = 6;
+
+
+/* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+var Z_OK            = 0;
+var Z_STREAM_END    = 1;
+var Z_NEED_DICT     = 2;
+//var Z_ERRNO         = -1;
+var Z_STREAM_ERROR  = -2;
+var Z_DATA_ERROR    = -3;
+var Z_MEM_ERROR     = -4;
+var Z_BUF_ERROR     = -5;
+//var Z_VERSION_ERROR = -6;
+
+/* The deflate compression method */
+var Z_DEFLATED  = 8;
+
+
+/* STATES ====================================================================*/
+/* ===========================================================================*/
+
+
+var    HEAD = 1;       /* i: waiting for magic header */
+var    FLAGS = 2;      /* i: waiting for method and flags (gzip) */
+var    TIME = 3;       /* i: waiting for modification time (gzip) */
+var    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */
+var    EXLEN = 5;      /* i: waiting for extra length (gzip) */
+var    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */
+var    NAME = 7;       /* i: waiting for end of file name (gzip) */
+var    COMMENT = 8;    /* i: waiting for end of comment (gzip) */
+var    HCRC = 9;       /* i: waiting for header crc (gzip) */
+var    DICTID = 10;    /* i: waiting for dictionary check value */
+var    DICT = 11;      /* waiting for inflateSetDictionary() call */
+var        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
+var        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */
+var        STORED = 14;    /* i: waiting for stored size (length and complement) */
+var        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */
+var        COPY = 16;      /* i/o: waiting for input or output to copy stored block */
+var        TABLE = 17;     /* i: waiting for dynamic block table lengths */
+var        LENLENS = 18;   /* i: waiting for code length code lengths */
+var        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */
+var            LEN_ = 20;      /* i: same as LEN below, but only first time in */
+var            LEN = 21;       /* i: waiting for length/lit/eob code */
+var            LENEXT = 22;    /* i: waiting for length extra bits */
+var            DIST = 23;      /* i: waiting for distance code */
+var            DISTEXT = 24;   /* i: waiting for distance extra bits */
+var            MATCH = 25;     /* o: waiting for output space to copy string */
+var            LIT = 26;       /* o: waiting for output space to write literal */
+var    CHECK = 27;     /* i: waiting for 32-bit check value */
+var    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */
+var    DONE = 29;      /* finished check, done -- remain here until reset */
+var    BAD = 30;       /* got a data error -- remain here until reset */
+var    MEM = 31;       /* got an inflate() memory error -- remain here until reset */
+var    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */
+
+/* ===========================================================================*/
+
+
+
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);
+
+var MAX_WBITS = 15;
+/* 32K LZ77 window */
+var DEF_WBITS = MAX_WBITS;
+
+
+function zswap32(q) {
+  return  (((q >>> 24) & 0xff) +
+          ((q >>> 8) & 0xff00) +
+          ((q & 0xff00) << 8) +
+          ((q & 0xff) << 24));
+}
+
+
+function InflateState() {
+  this.mode = 0;             /* current inflate mode */
+  this.last = false;          /* true if processing last block */
+  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
+  this.havedict = false;      /* true if dictionary provided */
+  this.flags = 0;             /* gzip header method and flags (0 if zlib) */
+  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */
+  this.check = 0;             /* protected copy of check value */
+  this.total = 0;             /* protected copy of output count */
+  // TODO: may be {}
+  this.head = null;           /* where to save gzip header information */
+
+  /* sliding window */
+  this.wbits = 0;             /* log base 2 of requested window size */
+  this.wsize = 0;             /* window size or zero if not using window */
+  this.whave = 0;             /* valid bytes in the window */
+  this.wnext = 0;             /* window write index */
+  this.window = null;         /* allocated sliding window, if needed */
+
+  /* bit accumulator */
+  this.hold = 0;              /* input bit accumulator */
+  this.bits = 0;              /* number of bits in "in" */
+
+  /* for string and stored block copying */
+  this.length = 0;            /* literal or length of data to copy */
+  this.offset = 0;            /* distance back to copy string from */
+
+  /* for table and code decoding */
+  this.extra = 0;             /* extra bits needed */
+
+  /* fixed and dynamic code tables */
+  this.lencode = null;          /* starting table for length/literal codes */
+  this.distcode = null;         /* starting table for distance codes */
+  this.lenbits = 0;           /* index bits for lencode */
+  this.distbits = 0;          /* index bits for distcode */
+
+  /* dynamic table building */
+  this.ncode = 0;             /* number of code length code lengths */
+  this.nlen = 0;              /* number of length code lengths */
+  this.ndist = 0;             /* number of distance code lengths */
+  this.have = 0;              /* number of code lengths in lens[] */
+  this.next = null;              /* next available space in codes[] */
+
+  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */
+  this.work = new utils.Buf16(288); /* work area for code table building */
+
+  /*
+   because we don't have pointers in js, we use lencode and distcode directly
+   as buffers so we don't need codes
+  */
+  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */
+  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */
+  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */
+  this.sane = 0;                   /* if false, allow invalid distance too far */
+  this.back = 0;                   /* bits back of last unprocessed length/lit */
+  this.was = 0;                    /* initial length of match */
+}
+
+function inflateResetKeep(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  strm.total_in = strm.total_out = state.total = 0;
+  strm.msg = ''; /*Z_NULL*/
+  if (state.wrap) {       /* to support ill-conceived Java test suite */
+    strm.adler = state.wrap & 1;
+  }
+  state.mode = HEAD;
+  state.last = 0;
+  state.havedict = 0;
+  state.dmax = 32768;
+  state.head = null/*Z_NULL*/;
+  state.hold = 0;
+  state.bits = 0;
+  //state.lencode = state.distcode = state.next = state.codes;
+  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
+  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
+
+  state.sane = 1;
+  state.back = -1;
+  //Tracev((stderr, "inflate: reset\n"));
+  return Z_OK;
+}
+
+function inflateReset(strm) {
+  var state;
+
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  state.wsize = 0;
+  state.whave = 0;
+  state.wnext = 0;
+  return inflateResetKeep(strm);
+
+}
+
+function inflateReset2(strm, windowBits) {
+  var wrap;
+  var state;
+
+  /* get the state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  /* extract wrap request from windowBits parameter */
+  if (windowBits < 0) {
+    wrap = 0;
+    windowBits = -windowBits;
+  }
+  else {
+    wrap = (windowBits >> 4) + 1;
+    if (windowBits < 48) {
+      windowBits &= 15;
+    }
+  }
+
+  /* set number of window bits, free window if different */
+  if (windowBits && (windowBits < 8 || windowBits > 15)) {
+    return Z_STREAM_ERROR;
+  }
+  if (state.window !== null && state.wbits !== windowBits) {
+    state.window = null;
+  }
+
+  /* update state and reset the rest of it */
+  state.wrap = wrap;
+  state.wbits = windowBits;
+  return inflateReset(strm);
+}
+
+function inflateInit2(strm, windowBits) {
+  var ret;
+  var state;
+
+  if (!strm) { return Z_STREAM_ERROR; }
+  //strm.msg = Z_NULL;                 /* in case we return an error */
+
+  state = new InflateState();
+
+  //if (state === Z_NULL) return Z_MEM_ERROR;
+  //Tracev((stderr, "inflate: allocated\n"));
+  strm.state = state;
+  state.window = null/*Z_NULL*/;
+  ret = inflateReset2(strm, windowBits);
+  if (ret !== Z_OK) {
+    strm.state = null/*Z_NULL*/;
+  }
+  return ret;
+}
+
+function inflateInit(strm) {
+  return inflateInit2(strm, DEF_WBITS);
+}
+
+
+/*
+ Return state with length and distance decoding tables and index sizes set to
+ fixed code decoding.  Normally this returns fixed tables from inffixed.h.
+ If BUILDFIXED is defined, then instead this routine builds the tables the
+ first time it's called, and returns those tables the first time and
+ thereafter.  This reduces the size of the code by about 2K bytes, in
+ exchange for a little execution time.  However, BUILDFIXED should not be
+ used for threaded applications, since the rewriting of the tables and virgin
+ may not be thread-safe.
+ */
+var virgin = true;
+
+var lenfix, distfix; // We have no pointers in JS, so keep tables separate
+
+function fixedtables(state) {
+  /* build fixed huffman tables if first call (may not be thread safe) */
+  if (virgin) {
+    var sym;
+
+    lenfix = new utils.Buf32(512);
+    distfix = new utils.Buf32(32);
+
+    /* literal/length table */
+    sym = 0;
+    while (sym < 144) { state.lens[sym++] = 8; }
+    while (sym < 256) { state.lens[sym++] = 9; }
+    while (sym < 280) { state.lens[sym++] = 7; }
+    while (sym < 288) { state.lens[sym++] = 8; }
+
+    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });
+
+    /* distance table */
+    sym = 0;
+    while (sym < 32) { state.lens[sym++] = 5; }
+
+    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });
+
+    /* do this just once */
+    virgin = false;
+  }
+
+  state.lencode = lenfix;
+  state.lenbits = 9;
+  state.distcode = distfix;
+  state.distbits = 5;
+}
+
+
+/*
+ Update the window with the last wsize (normally 32K) bytes written before
+ returning.  If window does not exist yet, create it.  This is only called
+ when a window is already in use, or when output has been written during this
+ inflate call, but the end of the deflate stream has not been reached yet.
+ It is also called to create a window for dictionary data when a dictionary
+ is loaded.
+
+ Providing output buffers larger than 32K to inflate() should provide a speed
+ advantage, since only the last 32K of output is copied to the sliding window
+ upon return from inflate(), and since all distances after the first 32K of
+ output will fall in the output data, making match copies simpler and faster.
+ The advantage may be dependent on the size of the processor's data caches.
+ */
+function updatewindow(strm, src, end, copy) {
+  var dist;
+  var state = strm.state;
+
+  /* if it hasn't been done already, allocate space for the window */
+  if (state.window === null) {
+    state.wsize = 1 << state.wbits;
+    state.wnext = 0;
+    state.whave = 0;
+
+    state.window = new utils.Buf8(state.wsize);
+  }
+
+  /* copy state->wsize or less output bytes into the circular window */
+  if (copy >= state.wsize) {
+    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
+    state.wnext = 0;
+    state.whave = state.wsize;
+  }
+  else {
+    dist = state.wsize - state.wnext;
+    if (dist > copy) {
+      dist = copy;
+    }
+    //zmemcpy(state->window + state->wnext, end - copy, dist);
+    utils.arraySet(state.window, src, end - copy, dist, state.wnext);
+    copy -= dist;
+    if (copy) {
+      //zmemcpy(state->window, end - copy, copy);
+      utils.arraySet(state.window, src, end - copy, copy, 0);
+      state.wnext = copy;
+      state.whave = state.wsize;
+    }
+    else {
+      state.wnext += dist;
+      if (state.wnext === state.wsize) { state.wnext = 0; }
+      if (state.whave < state.wsize) { state.whave += dist; }
+    }
+  }
+  return 0;
+}
+
+function inflate(strm, flush) {
+  var state;
+  var input, output;          // input/output buffers
+  var next;                   /* next input INDEX */
+  var put;                    /* next output INDEX */
+  var have, left;             /* available input and output */
+  var hold;                   /* bit buffer */
+  var bits;                   /* bits in bit buffer */
+  var _in, _out;              /* save starting available input and output */
+  var copy;                   /* number of stored or match bytes to copy */
+  var from;                   /* where to copy match bytes from */
+  var from_source;
+  var here = 0;               /* current decoding table entry */
+  var here_bits, here_op, here_val; // paked "here" denormalized (JS specific)
+  //var last;                   /* parent table entry */
+  var last_bits, last_op, last_val; // paked "last" denormalized (JS specific)
+  var len;                    /* length to copy for repeats, bits to drop */
+  var ret;                    /* return code */
+  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */
+  var opts;
+
+  var n; // temporary var for NEED_BITS
+
+  var order = /* permutation of code lengths */
+    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];
+
+
+  if (!strm || !strm.state || !strm.output ||
+      (!strm.input && strm.avail_in !== 0)) {
+    return Z_STREAM_ERROR;
+  }
+
+  state = strm.state;
+  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */
+
+
+  //--- LOAD() ---
+  put = strm.next_out;
+  output = strm.output;
+  left = strm.avail_out;
+  next = strm.next_in;
+  input = strm.input;
+  have = strm.avail_in;
+  hold = state.hold;
+  bits = state.bits;
+  //---
+
+  _in = have;
+  _out = left;
+  ret = Z_OK;
+
+  inf_leave: // goto emulation
+  for (;;) {
+    switch (state.mode) {
+    case HEAD:
+      if (state.wrap === 0) {
+        state.mode = TYPEDO;
+        break;
+      }
+      //=== NEEDBITS(16);
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */
+        state.check = 0/*crc32(0L, Z_NULL, 0)*/;
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        state.mode = FLAGS;
+        break;
+      }
+      state.flags = 0;           /* expect zlib header */
+      if (state.head) {
+        state.head.done = false;
+      }
+      if (!(state.wrap & 1) ||   /* check if zlib header allowed */
+        (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {
+        strm.msg = 'incorrect header check';
+        state.mode = BAD;
+        break;
+      }
+      if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+      len = (hold & 0x0f)/*BITS(4)*/ + 8;
+      if (state.wbits === 0) {
+        state.wbits = len;
+      }
+      else if (len > state.wbits) {
+        strm.msg = 'invalid window size';
+        state.mode = BAD;
+        break;
+      }
+      state.dmax = 1 << len;
+      //Tracev((stderr, "inflate:   zlib header ok\n"));
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = hold & 0x200 ? DICTID : TYPE;
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      break;
+    case FLAGS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.flags = hold;
+      if ((state.flags & 0xff) !== Z_DEFLATED) {
+        strm.msg = 'unknown compression method';
+        state.mode = BAD;
+        break;
+      }
+      if (state.flags & 0xe000) {
+        strm.msg = 'unknown header flags set';
+        state.mode = BAD;
+        break;
+      }
+      if (state.head) {
+        state.head.text = ((hold >> 8) & 1);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = TIME;
+      /* falls through */
+    case TIME:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.time = hold;
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC4(state.check, hold)
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        hbuf[2] = (hold >>> 16) & 0xff;
+        hbuf[3] = (hold >>> 24) & 0xff;
+        state.check = crc32(state.check, hbuf, 4, 0);
+        //===
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = OS;
+      /* falls through */
+    case OS:
+      //=== NEEDBITS(16); */
+      while (bits < 16) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if (state.head) {
+        state.head.xflags = (hold & 0xff);
+        state.head.os = (hold >> 8);
+      }
+      if (state.flags & 0x0200) {
+        //=== CRC2(state.check, hold);
+        hbuf[0] = hold & 0xff;
+        hbuf[1] = (hold >>> 8) & 0xff;
+        state.check = crc32(state.check, hbuf, 2, 0);
+        //===//
+      }
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = EXLEN;
+      /* falls through */
+    case EXLEN:
+      if (state.flags & 0x0400) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length = hold;
+        if (state.head) {
+          state.head.extra_len = hold;
+        }
+        if (state.flags & 0x0200) {
+          //=== CRC2(state.check, hold);
+          hbuf[0] = hold & 0xff;
+          hbuf[1] = (hold >>> 8) & 0xff;
+          state.check = crc32(state.check, hbuf, 2, 0);
+          //===//
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      else if (state.head) {
+        state.head.extra = null/*Z_NULL*/;
+      }
+      state.mode = EXTRA;
+      /* falls through */
+    case EXTRA:
+      if (state.flags & 0x0400) {
+        copy = state.length;
+        if (copy > have) { copy = have; }
+        if (copy) {
+          if (state.head) {
+            len = state.head.extra_len - state.length;
+            if (!state.head.extra) {
+              // Use untyped array for more conveniend processing later
+              state.head.extra = new Array(state.head.extra_len);
+            }
+            utils.arraySet(
+              state.head.extra,
+              input,
+              next,
+              // extra field is limited to 65536 bytes
+              // - no need for additional size check
+              copy,
+              /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
+              len
+            );
+            //zmemcpy(state.head.extra + len, next,
+            //        len + copy > state.head.extra_max ?
+            //        state.head.extra_max - len : copy);
+          }
+          if (state.flags & 0x0200) {
+            state.check = crc32(state.check, input, copy, next);
+          }
+          have -= copy;
+          next += copy;
+          state.length -= copy;
+        }
+        if (state.length) { break inf_leave; }
+      }
+      state.length = 0;
+      state.mode = NAME;
+      /* falls through */
+    case NAME:
+      if (state.flags & 0x0800) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          // TODO: 2 or 1 bytes?
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.name_max*/)) {
+            state.head.name += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.name = null;
+      }
+      state.length = 0;
+      state.mode = COMMENT;
+      /* falls through */
+    case COMMENT:
+      if (state.flags & 0x1000) {
+        if (have === 0) { break inf_leave; }
+        copy = 0;
+        do {
+          len = input[next + copy++];
+          /* use constant limit because in js we should not preallocate memory */
+          if (state.head && len &&
+              (state.length < 65536 /*state.head.comm_max*/)) {
+            state.head.comment += String.fromCharCode(len);
+          }
+        } while (len && copy < have);
+        if (state.flags & 0x0200) {
+          state.check = crc32(state.check, input, copy, next);
+        }
+        have -= copy;
+        next += copy;
+        if (len) { break inf_leave; }
+      }
+      else if (state.head) {
+        state.head.comment = null;
+      }
+      state.mode = HCRC;
+      /* falls through */
+    case HCRC:
+      if (state.flags & 0x0200) {
+        //=== NEEDBITS(16); */
+        while (bits < 16) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.check & 0xffff)) {
+          strm.msg = 'header crc mismatch';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+      }
+      if (state.head) {
+        state.head.hcrc = ((state.flags >> 9) & 1);
+        state.head.done = true;
+      }
+      strm.adler = state.check = 0;
+      state.mode = TYPE;
+      break;
+    case DICTID:
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      strm.adler = state.check = zswap32(hold);
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = DICT;
+      /* falls through */
+    case DICT:
+      if (state.havedict === 0) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        return Z_NEED_DICT;
+      }
+      strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
+      state.mode = TYPE;
+      /* falls through */
+    case TYPE:
+      if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case TYPEDO:
+      if (state.last) {
+        //--- BYTEBITS() ---//
+        hold >>>= bits & 7;
+        bits -= bits & 7;
+        //---//
+        state.mode = CHECK;
+        break;
+      }
+      //=== NEEDBITS(3); */
+      while (bits < 3) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.last = (hold & 0x01)/*BITS(1)*/;
+      //--- DROPBITS(1) ---//
+      hold >>>= 1;
+      bits -= 1;
+      //---//
+
+      switch ((hold & 0x03)/*BITS(2)*/) {
+      case 0:                             /* stored block */
+        //Tracev((stderr, "inflate:     stored block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = STORED;
+        break;
+      case 1:                             /* fixed block */
+        fixedtables(state);
+        //Tracev((stderr, "inflate:     fixed codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = LEN_;             /* decode codes */
+        if (flush === Z_TREES) {
+          //--- DROPBITS(2) ---//
+          hold >>>= 2;
+          bits -= 2;
+          //---//
+          break inf_leave;
+        }
+        break;
+      case 2:                             /* dynamic block */
+        //Tracev((stderr, "inflate:     dynamic codes block%s\n",
+        //        state.last ? " (last)" : ""));
+        state.mode = TABLE;
+        break;
+      case 3:
+        strm.msg = 'invalid block type';
+        state.mode = BAD;
+      }
+      //--- DROPBITS(2) ---//
+      hold >>>= 2;
+      bits -= 2;
+      //---//
+      break;
+    case STORED:
+      //--- BYTEBITS() ---// /* go to byte boundary */
+      hold >>>= bits & 7;
+      bits -= bits & 7;
+      //---//
+      //=== NEEDBITS(32); */
+      while (bits < 32) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {
+        strm.msg = 'invalid stored block lengths';
+        state.mode = BAD;
+        break;
+      }
+      state.length = hold & 0xffff;
+      //Tracev((stderr, "inflate:       stored length %u\n",
+      //        state.length));
+      //=== INITBITS();
+      hold = 0;
+      bits = 0;
+      //===//
+      state.mode = COPY_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case COPY_:
+      state.mode = COPY;
+      /* falls through */
+    case COPY:
+      copy = state.length;
+      if (copy) {
+        if (copy > have) { copy = have; }
+        if (copy > left) { copy = left; }
+        if (copy === 0) { break inf_leave; }
+        //--- zmemcpy(put, next, copy); ---
+        utils.arraySet(output, input, next, copy, put);
+        //---//
+        have -= copy;
+        next += copy;
+        left -= copy;
+        put += copy;
+        state.length -= copy;
+        break;
+      }
+      //Tracev((stderr, "inflate:       stored end\n"));
+      state.mode = TYPE;
+      break;
+    case TABLE:
+      //=== NEEDBITS(14); */
+      while (bits < 14) {
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+      }
+      //===//
+      state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;
+      //--- DROPBITS(5) ---//
+      hold >>>= 5;
+      bits -= 5;
+      //---//
+      state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;
+      //--- DROPBITS(4) ---//
+      hold >>>= 4;
+      bits -= 4;
+      //---//
+//#ifndef PKZIP_BUG_WORKAROUND
+      if (state.nlen > 286 || state.ndist > 30) {
+        strm.msg = 'too many length or distance symbols';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracev((stderr, "inflate:       table sizes ok\n"));
+      state.have = 0;
+      state.mode = LENLENS;
+      /* falls through */
+    case LENLENS:
+      while (state.have < state.ncode) {
+        //=== NEEDBITS(3);
+        while (bits < 3) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);
+        //--- DROPBITS(3) ---//
+        hold >>>= 3;
+        bits -= 3;
+        //---//
+      }
+      while (state.have < 19) {
+        state.lens[order[state.have++]] = 0;
+      }
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      //state.next = state.codes;
+      //state.lencode = state.next;
+      // Switch to use dynamic table
+      state.lencode = state.lendyn;
+      state.lenbits = 7;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
+      state.lenbits = opts.bits;
+
+      if (ret) {
+        strm.msg = 'invalid code lengths set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, "inflate:       code lengths ok\n"));
+      state.have = 0;
+      state.mode = CODELENS;
+      /* falls through */
+    case CODELENS:
+      while (state.have < state.nlen + state.ndist) {
+        for (;;) {
+          here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        if (here_val < 16) {
+          //--- DROPBITS(here.bits) ---//
+          hold >>>= here_bits;
+          bits -= here_bits;
+          //---//
+          state.lens[state.have++] = here_val;
+        }
+        else {
+          if (here_val === 16) {
+            //=== NEEDBITS(here.bits + 2);
+            n = here_bits + 2;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            if (state.have === 0) {
+              strm.msg = 'invalid bit length repeat';
+              state.mode = BAD;
+              break;
+            }
+            len = state.lens[state.have - 1];
+            copy = 3 + (hold & 0x03);//BITS(2);
+            //--- DROPBITS(2) ---//
+            hold >>>= 2;
+            bits -= 2;
+            //---//
+          }
+          else if (here_val === 17) {
+            //=== NEEDBITS(here.bits + 3);
+            n = here_bits + 3;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 3 + (hold & 0x07);//BITS(3);
+            //--- DROPBITS(3) ---//
+            hold >>>= 3;
+            bits -= 3;
+            //---//
+          }
+          else {
+            //=== NEEDBITS(here.bits + 7);
+            n = here_bits + 7;
+            while (bits < n) {
+              if (have === 0) { break inf_leave; }
+              have--;
+              hold += input[next++] << bits;
+              bits += 8;
+            }
+            //===//
+            //--- DROPBITS(here.bits) ---//
+            hold >>>= here_bits;
+            bits -= here_bits;
+            //---//
+            len = 0;
+            copy = 11 + (hold & 0x7f);//BITS(7);
+            //--- DROPBITS(7) ---//
+            hold >>>= 7;
+            bits -= 7;
+            //---//
+          }
+          if (state.have + copy > state.nlen + state.ndist) {
+            strm.msg = 'invalid bit length repeat';
+            state.mode = BAD;
+            break;
+          }
+          while (copy--) {
+            state.lens[state.have++] = len;
+          }
+        }
+      }
+
+      /* handle error breaks in while */
+      if (state.mode === BAD) { break; }
+
+      /* check for end-of-block code (better have one) */
+      if (state.lens[256] === 0) {
+        strm.msg = 'invalid code -- missing end-of-block';
+        state.mode = BAD;
+        break;
+      }
+
+      /* build code tables -- note: do not change the lenbits or distbits
+         values here (9 and 6) without reading the comments in inftrees.h
+         concerning the ENOUGH constants, which depend on those values */
+      state.lenbits = 9;
+
+      opts = { bits: state.lenbits };
+      ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.lenbits = opts.bits;
+      // state.lencode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid literal/lengths set';
+        state.mode = BAD;
+        break;
+      }
+
+      state.distbits = 6;
+      //state.distcode.copy(state.codes);
+      // Switch to use dynamic table
+      state.distcode = state.distdyn;
+      opts = { bits: state.distbits };
+      ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
+      // We have separate tables & no pointers. 2 commented lines below not needed.
+      // state.next_index = opts.table_index;
+      state.distbits = opts.bits;
+      // state.distcode = state.next;
+
+      if (ret) {
+        strm.msg = 'invalid distances set';
+        state.mode = BAD;
+        break;
+      }
+      //Tracev((stderr, 'inflate:       codes ok\n'));
+      state.mode = LEN_;
+      if (flush === Z_TREES) { break inf_leave; }
+      /* falls through */
+    case LEN_:
+      state.mode = LEN;
+      /* falls through */
+    case LEN:
+      if (have >= 6 && left >= 258) {
+        //--- RESTORE() ---
+        strm.next_out = put;
+        strm.avail_out = left;
+        strm.next_in = next;
+        strm.avail_in = have;
+        state.hold = hold;
+        state.bits = bits;
+        //---
+        inflate_fast(strm, _out);
+        //--- LOAD() ---
+        put = strm.next_out;
+        output = strm.output;
+        left = strm.avail_out;
+        next = strm.next_in;
+        input = strm.input;
+        have = strm.avail_in;
+        hold = state.hold;
+        bits = state.bits;
+        //---
+
+        if (state.mode === TYPE) {
+          state.back = -1;
+        }
+        break;
+      }
+      state.back = 0;
+      for (;;) {
+        here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if (here_bits <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if (here_op && (here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.lencode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      state.length = here_val;
+      if (here_op === 0) {
+        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+        //        "inflate:         literal '%c'\n" :
+        //        "inflate:         literal 0x%02x\n", here.val));
+        state.mode = LIT;
+        break;
+      }
+      if (here_op & 32) {
+        //Tracevv((stderr, "inflate:         end of block\n"));
+        state.back = -1;
+        state.mode = TYPE;
+        break;
+      }
+      if (here_op & 64) {
+        strm.msg = 'invalid literal/length code';
+        state.mode = BAD;
+        break;
+      }
+      state.extra = here_op & 15;
+      state.mode = LENEXT;
+      /* falls through */
+    case LENEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+      //Tracevv((stderr, "inflate:         length %u\n", state.length));
+      state.was = state.length;
+      state.mode = DIST;
+      /* falls through */
+    case DIST:
+      for (;;) {
+        here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/
+        here_bits = here >>> 24;
+        here_op = (here >>> 16) & 0xff;
+        here_val = here & 0xffff;
+
+        if ((here_bits) <= bits) { break; }
+        //--- PULLBYTE() ---//
+        if (have === 0) { break inf_leave; }
+        have--;
+        hold += input[next++] << bits;
+        bits += 8;
+        //---//
+      }
+      if ((here_op & 0xf0) === 0) {
+        last_bits = here_bits;
+        last_op = here_op;
+        last_val = here_val;
+        for (;;) {
+          here = state.distcode[last_val +
+                  ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
+          here_bits = here >>> 24;
+          here_op = (here >>> 16) & 0xff;
+          here_val = here & 0xffff;
+
+          if ((last_bits + here_bits) <= bits) { break; }
+          //--- PULLBYTE() ---//
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+          //---//
+        }
+        //--- DROPBITS(last.bits) ---//
+        hold >>>= last_bits;
+        bits -= last_bits;
+        //---//
+        state.back += last_bits;
+      }
+      //--- DROPBITS(here.bits) ---//
+      hold >>>= here_bits;
+      bits -= here_bits;
+      //---//
+      state.back += here_bits;
+      if (here_op & 64) {
+        strm.msg = 'invalid distance code';
+        state.mode = BAD;
+        break;
+      }
+      state.offset = here_val;
+      state.extra = (here_op) & 15;
+      state.mode = DISTEXT;
+      /* falls through */
+    case DISTEXT:
+      if (state.extra) {
+        //=== NEEDBITS(state.extra);
+        n = state.extra;
+        while (bits < n) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
+        //--- DROPBITS(state.extra) ---//
+        hold >>>= state.extra;
+        bits -= state.extra;
+        //---//
+        state.back += state.extra;
+      }
+//#ifdef INFLATE_STRICT
+      if (state.offset > state.dmax) {
+        strm.msg = 'invalid distance too far back';
+        state.mode = BAD;
+        break;
+      }
+//#endif
+      //Tracevv((stderr, "inflate:         distance %u\n", state.offset));
+      state.mode = MATCH;
+      /* falls through */
+    case MATCH:
+      if (left === 0) { break inf_leave; }
+      copy = _out - left;
+      if (state.offset > copy) {         /* copy from window */
+        copy = state.offset - copy;
+        if (copy > state.whave) {
+          if (state.sane) {
+            strm.msg = 'invalid distance too far back';
+            state.mode = BAD;
+            break;
+          }
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
+//          Trace((stderr, "inflate.c too far\n"));
+//          copy -= state.whave;
+//          if (copy > state.length) { copy = state.length; }
+//          if (copy > left) { copy = left; }
+//          left -= copy;
+//          state.length -= copy;
+//          do {
+//            output[put++] = 0;
+//          } while (--copy);
+//          if (state.length === 0) { state.mode = LEN; }
+//          break;
+//#endif
+        }
+        if (copy > state.wnext) {
+          copy -= state.wnext;
+          from = state.wsize - copy;
+        }
+        else {
+          from = state.wnext - copy;
+        }
+        if (copy > state.length) { copy = state.length; }
+        from_source = state.window;
+      }
+      else {                              /* copy from output */
+        from_source = output;
+        from = put - state.offset;
+        copy = state.length;
+      }
+      if (copy > left) { copy = left; }
+      left -= copy;
+      state.length -= copy;
+      do {
+        output[put++] = from_source[from++];
+      } while (--copy);
+      if (state.length === 0) { state.mode = LEN; }
+      break;
+    case LIT:
+      if (left === 0) { break inf_leave; }
+      output[put++] = state.length;
+      left--;
+      state.mode = LEN;
+      break;
+    case CHECK:
+      if (state.wrap) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          // Use '|' insdead of '+' to make sure that result is signed
+          hold |= input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        _out -= left;
+        strm.total_out += _out;
+        state.total += _out;
+        if (_out) {
+          strm.adler = state.check =
+              /*UPDATE(state.check, put - _out, _out);*/
+              (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));
+
+        }
+        _out = left;
+        // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too
+        if ((state.flags ? hold : zswap32(hold)) !== state.check) {
+          strm.msg = 'incorrect data check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   check matches trailer\n"));
+      }
+      state.mode = LENGTH;
+      /* falls through */
+    case LENGTH:
+      if (state.wrap && state.flags) {
+        //=== NEEDBITS(32);
+        while (bits < 32) {
+          if (have === 0) { break inf_leave; }
+          have--;
+          hold += input[next++] << bits;
+          bits += 8;
+        }
+        //===//
+        if (hold !== (state.total & 0xffffffff)) {
+          strm.msg = 'incorrect length check';
+          state.mode = BAD;
+          break;
+        }
+        //=== INITBITS();
+        hold = 0;
+        bits = 0;
+        //===//
+        //Tracev((stderr, "inflate:   length matches trailer\n"));
+      }
+      state.mode = DONE;
+      /* falls through */
+    case DONE:
+      ret = Z_STREAM_END;
+      break inf_leave;
+    case BAD:
+      ret = Z_DATA_ERROR;
+      break inf_leave;
+    case MEM:
+      return Z_MEM_ERROR;
+    case SYNC:
+      /* falls through */
+    default:
+      return Z_STREAM_ERROR;
+    }
+  }
+
+  // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave"
+
+  /*
+     Return from inflate(), updating the total counts and the check value.
+     If there was no progress during the inflate() call, return a buffer
+     error.  Call updatewindow() to create and/or update the window state.
+     Note: a memory error from inflate() is non-recoverable.
+   */
+
+  //--- RESTORE() ---
+  strm.next_out = put;
+  strm.avail_out = left;
+  strm.next_in = next;
+  strm.avail_in = have;
+  state.hold = hold;
+  state.bits = bits;
+  //---
+
+  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&
+                      (state.mode < CHECK || flush !== Z_FINISH))) {
+    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
+      state.mode = MEM;
+      return Z_MEM_ERROR;
+    }
+  }
+  _in -= strm.avail_in;
+  _out -= strm.avail_out;
+  strm.total_in += _in;
+  strm.total_out += _out;
+  state.total += _out;
+  if (state.wrap && _out) {
+    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
+      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));
+  }
+  strm.data_type = state.bits + (state.last ? 64 : 0) +
+                    (state.mode === TYPE ? 128 : 0) +
+                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
+  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
+    ret = Z_BUF_ERROR;
+  }
+  return ret;
+}
+
+function inflateEnd(strm) {
+
+  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {
+    return Z_STREAM_ERROR;
+  }
+
+  var state = strm.state;
+  if (state.window) {
+    state.window = null;
+  }
+  strm.state = null;
+  return Z_OK;
+}
+
+function inflateGetHeader(strm, head) {
+  var state;
+
+  /* check state */
+  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
+  state = strm.state;
+  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }
+
+  /* save header structure */
+  state.head = head;
+  head.done = false;
+  return Z_OK;
+}
+
+function inflateSetDictionary(strm, dictionary) {
+  var dictLength = dictionary.length;
+
+  var state;
+  var dictid;
+  var ret;
+
+  /* check state */
+  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }
+  state = strm.state;
+
+  if (state.wrap !== 0 && state.mode !== DICT) {
+    return Z_STREAM_ERROR;
+  }
+
+  /* check for correct dictionary identifier */
+  if (state.mode === DICT) {
+    dictid = 1; /* adler32(0, null, 0)*/
+    /* dictid = adler32(dictid, dictionary, dictLength); */
+    dictid = adler32(dictid, dictionary, dictLength, 0);
+    if (dictid !== state.check) {
+      return Z_DATA_ERROR;
+    }
+  }
+  /* copy dictionary to window using updatewindow(), which will amend the
+   existing dictionary if appropriate */
+  ret = updatewindow(strm, dictionary, dictLength, dictLength);
+  if (ret) {
+    state.mode = MEM;
+    return Z_MEM_ERROR;
+  }
+  state.havedict = 1;
+  // Tracev((stderr, "inflate:   dictionary set\n"));
+  return Z_OK;
+}
+
+exports.inflateReset = inflateReset;
+exports.inflateReset2 = inflateReset2;
+exports.inflateResetKeep = inflateResetKeep;
+exports.inflateInit = inflateInit;
+exports.inflateInit2 = inflateInit2;
+exports.inflate = inflate;
+exports.inflateEnd = inflateEnd;
+exports.inflateGetHeader = inflateGetHeader;
+exports.inflateSetDictionary = inflateSetDictionary;
+exports.inflateInfo = 'pako inflate (from Nodeca project)';
+
+/* Not implemented
+exports.inflateCopy = inflateCopy;
+exports.inflateGetDictionary = inflateGetDictionary;
+exports.inflateMark = inflateMark;
+exports.inflatePrime = inflatePrime;
+exports.inflateSync = inflateSync;
+exports.inflateSyncPoint = inflateSyncPoint;
+exports.inflateUndermine = inflateUndermine;
+*/
+
+},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+var MAXBITS = 15;
+var ENOUGH_LENS = 852;
+var ENOUGH_DISTS = 592;
+//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
+
+var CODES = 0;
+var LENS = 1;
+var DISTS = 2;
+
+var lbase = [ /* Length codes 257..285 base */
+  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
+];
+
+var lext = [ /* Length codes 257..285 extra */
+  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
+  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78
+];
+
+var dbase = [ /* Distance codes 0..29 base */
+  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+  8193, 12289, 16385, 24577, 0, 0
+];
+
+var dext = [ /* Distance codes 0..29 extra */
+  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
+  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
+  28, 28, 29, 29, 64, 64
+];
+
+module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)
+{
+  var bits = opts.bits;
+      //here = opts.here; /* table entry for duplication */
+
+  var len = 0;               /* a code's length in bits */
+  var sym = 0;               /* index of code symbols */
+  var min = 0, max = 0;          /* minimum and maximum code lengths */
+  var root = 0;              /* number of index bits for root table */
+  var curr = 0;              /* number of index bits for current table */
+  var drop = 0;              /* code bits to drop for sub-table */
+  var left = 0;                   /* number of prefix codes available */
+  var used = 0;              /* code entries in table used */
+  var huff = 0;              /* Huffman code */
+  var incr;              /* for incrementing code, index */
+  var fill;              /* index for replicating entries */
+  var low;               /* low bits for current root entry */
+  var mask;              /* mask for low root bits */
+  var next;             /* next available space in table */
+  var base = null;     /* base value table to use */
+  var base_index = 0;
+//  var shoextra;    /* extra bits table to use */
+  var end;                    /* use base and extra for symbol > end */
+  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */
+  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */
+  var extra = null;
+  var extra_index = 0;
+
+  var here_bits, here_op, here_val;
+
+  /*
+   Process a set of code lengths to create a canonical Huffman code.  The
+   code lengths are lens[0..codes-1].  Each length corresponds to the
+   symbols 0..codes-1.  The Huffman code is generated by first sorting the
+   symbols by length from short to long, and retaining the symbol order
+   for codes with equal lengths.  Then the code starts with all zero bits
+   for the first code of the shortest length, and the codes are integer
+   increments for the same length, and zeros are appended as the length
+   increases.  For the deflate format, these bits are stored backwards
+   from their more natural integer increment ordering, and so when the
+   decoding tables are built in the large loop below, the integer codes
+   are incremented backwards.
+
+   This routine assumes, but does not check, that all of the entries in
+   lens[] are in the range 0..MAXBITS.  The caller must assure this.
+   1..MAXBITS is interpreted as that code length.  zero means that that
+   symbol does not occur in this code.
+
+   The codes are sorted by computing a count of codes for each length,
+   creating from that a table of starting indices for each length in the
+   sorted table, and then entering the symbols in order in the sorted
+   table.  The sorted table is work[], with that space being provided by
+   the caller.
+
+   The length counts are used for other purposes as well, i.e. finding
+   the minimum and maximum length codes, determining if there are any
+   codes at all, checking for a valid set of lengths, and looking ahead
+   at length counts to determine sub-table sizes when building the
+   decoding tables.
+   */
+
+  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
+  for (len = 0; len <= MAXBITS; len++) {
+    count[len] = 0;
+  }
+  for (sym = 0; sym < codes; sym++) {
+    count[lens[lens_index + sym]]++;
+  }
+
+  /* bound code lengths, force root to be within code lengths */
+  root = bits;
+  for (max = MAXBITS; max >= 1; max--) {
+    if (count[max] !== 0) { break; }
+  }
+  if (root > max) {
+    root = max;
+  }
+  if (max === 0) {                     /* no symbols to code at all */
+    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */
+    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;
+    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+
+    //table.op[opts.table_index] = 64;
+    //table.bits[opts.table_index] = 1;
+    //table.val[opts.table_index++] = 0;
+    table[table_index++] = (1 << 24) | (64 << 16) | 0;
+
+    opts.bits = 1;
+    return 0;     /* no symbols, but wait for decoding to report error */
+  }
+  for (min = 1; min < max; min++) {
+    if (count[min] !== 0) { break; }
+  }
+  if (root < min) {
+    root = min;
+  }
+
+  /* check for an over-subscribed or incomplete set of lengths */
+  left = 1;
+  for (len = 1; len <= MAXBITS; len++) {
+    left <<= 1;
+    left -= count[len];
+    if (left < 0) {
+      return -1;
+    }        /* over-subscribed */
+  }
+  if (left > 0 && (type === CODES || max !== 1)) {
+    return -1;                      /* incomplete set */
+  }
+
+  /* generate offsets into symbol table for each length for sorting */
+  offs[1] = 0;
+  for (len = 1; len < MAXBITS; len++) {
+    offs[len + 1] = offs[len] + count[len];
+  }
+
+  /* sort symbols by length, by symbol order within each length */
+  for (sym = 0; sym < codes; sym++) {
+    if (lens[lens_index + sym] !== 0) {
+      work[offs[lens[lens_index + sym]]++] = sym;
+    }
+  }
+
+  /*
+   Create and fill in decoding tables.  In this loop, the table being
+   filled is at next and has curr index bits.  The code being used is huff
+   with length len.  That code is converted to an index by dropping drop
+   bits off of the bottom.  For codes where len is less than drop + curr,
+   those top drop + curr - len bits are incremented through all values to
+   fill the table with replicated entries.
+
+   root is the number of index bits for the root table.  When len exceeds
+   root, sub-tables are created pointed to by the root entry with an index
+   of the low root bits of huff.  This is saved in low to check for when a
+   new sub-table should be started.  drop is zero when the root table is
+   being filled, and drop is root when sub-tables are being filled.
+
+   When a new sub-table is needed, it is necessary to look ahead in the
+   code lengths to determine what size sub-table is needed.  The length
+   counts are used for this, and so count[] is decremented as codes are
+   entered in the tables.
+
+   used keeps track of how many table entries have been allocated from the
+   provided *table space.  It is checked for LENS and DIST tables against
+   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
+   the initial root table size constants.  See the comments in inftrees.h
+   for more information.
+
+   sym increments through all symbols, and the loop terminates when
+   all codes of length max, i.e. all codes, have been processed.  This
+   routine permits incomplete codes, so another loop after this one fills
+   in the rest of the decoding tables with invalid code markers.
+   */
+
+  /* set up for code type */
+  // poor man optimization - use if-else instead of switch,
+  // to avoid deopts in old v8
+  if (type === CODES) {
+    base = extra = work;    /* dummy value--not used */
+    end = 19;
+
+  } else if (type === LENS) {
+    base = lbase;
+    base_index -= 257;
+    extra = lext;
+    extra_index -= 257;
+    end = 256;
+
+  } else {                    /* DISTS */
+    base = dbase;
+    extra = dext;
+    end = -1;
+  }
+
+  /* initialize opts for loop */
+  huff = 0;                   /* starting code */
+  sym = 0;                    /* starting code symbol */
+  len = min;                  /* starting code length */
+  next = table_index;              /* current table to fill in */
+  curr = root;                /* current table index bits */
+  drop = 0;                   /* current bits to drop from code for index */
+  low = -1;                   /* trigger new sub-table when len > root */
+  used = 1 << root;          /* use root table entries */
+  mask = used - 1;            /* mask for comparing low */
+
+  /* check available table space */
+  if ((type === LENS && used > ENOUGH_LENS) ||
+    (type === DISTS && used > ENOUGH_DISTS)) {
+    return 1;
+  }
+
+  /* process all codes and make table entries */
+  for (;;) {
+    /* create table entry */
+    here_bits = len - drop;
+    if (work[sym] < end) {
+      here_op = 0;
+      here_val = work[sym];
+    }
+    else if (work[sym] > end) {
+      here_op = extra[extra_index + work[sym]];
+      here_val = base[base_index + work[sym]];
+    }
+    else {
+      here_op = 32 + 64;         /* end of block */
+      here_val = 0;
+    }
+
+    /* replicate for those indices with low len bits equal to huff */
+    incr = 1 << (len - drop);
+    fill = 1 << curr;
+    min = fill;                 /* save offset to next table */
+    do {
+      fill -= incr;
+      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;
+    } while (fill !== 0);
+
+    /* backwards increment the len-bit code huff */
+    incr = 1 << (len - 1);
+    while (huff & incr) {
+      incr >>= 1;
+    }
+    if (incr !== 0) {
+      huff &= incr - 1;
+      huff += incr;
+    } else {
+      huff = 0;
+    }
+
+    /* go to next symbol, update count, len */
+    sym++;
+    if (--count[len] === 0) {
+      if (len === max) { break; }
+      len = lens[lens_index + work[sym]];
+    }
+
+    /* create new sub-table if needed */
+    if (len > root && (huff & mask) !== low) {
+      /* if first time, transition to sub-tables */
+      if (drop === 0) {
+        drop = root;
+      }
+
+      /* increment past last table */
+      next += min;            /* here min is 1 << curr */
+
+      /* determine length of next table */
+      curr = len - drop;
+      left = 1 << curr;
+      while (curr + drop < max) {
+        left -= count[curr + drop];
+        if (left <= 0) { break; }
+        curr++;
+        left <<= 1;
+      }
+
+      /* check for enough space */
+      used += 1 << curr;
+      if ((type === LENS && used > ENOUGH_LENS) ||
+        (type === DISTS && used > ENOUGH_DISTS)) {
+        return 1;
+      }
+
+      /* point entry in root table to sub-table */
+      low = huff & mask;
+      /*table.op[low] = curr;
+      table.bits[low] = root;
+      table.val[low] = next - opts.table_index;*/
+      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;
+    }
+  }
+
+  /* fill in remaining table entry if code is incomplete (guaranteed to have
+   at most one remaining entry, since if the code is incomplete, the
+   maximum code length that was allowed to get this far is one bit) */
+  if (huff !== 0) {
+    //table.op[next + huff] = 64;            /* invalid code marker */
+    //table.bits[next + huff] = len - drop;
+    //table.val[next + huff] = 0;
+    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;
+  }
+
+  /* set return parameters */
+  //opts.table_index += used;
+  opts.bits = root;
+  return 0;
+};
+
+},{"../utils/common":62}],72:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+module.exports = {
+  2:      'need dictionary',     /* Z_NEED_DICT       2  */
+  1:      'stream end',          /* Z_STREAM_END      1  */
+  0:      '',                    /* Z_OK              0  */
+  '-1':   'file error',          /* Z_ERRNO         (-1) */
+  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */
+  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */
+  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */
+  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */
+  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */
+};
+
+},{}],73:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+var utils = require('../utils/common');
+
+/* Public constants ==========================================================*/
+/* ===========================================================================*/
+
+
+//var Z_FILTERED          = 1;
+//var Z_HUFFMAN_ONLY      = 2;
+//var Z_RLE               = 3;
+var Z_FIXED               = 4;
+//var Z_DEFAULT_STRATEGY  = 0;
+
+/* Possible values of the data_type field (though see inflate()) */
+var Z_BINARY              = 0;
+var Z_TEXT                = 1;
+//var Z_ASCII             = 1; // = Z_TEXT
+var Z_UNKNOWN             = 2;
+
+/*============================================================================*/
+
+
+function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
+
+// From zutil.h
+
+var STORED_BLOCK = 0;
+var STATIC_TREES = 1;
+var DYN_TREES    = 2;
+/* The three kinds of block type */
+
+var MIN_MATCH    = 3;
+var MAX_MATCH    = 258;
+/* The minimum and maximum match lengths */
+
+// From deflate.h
+/* ===========================================================================
+ * Internal compression state.
+ */
+
+var LENGTH_CODES  = 29;
+/* number of length codes, not counting the special END_BLOCK code */
+
+var LITERALS      = 256;
+/* number of literal bytes 0..255 */
+
+var L_CODES       = LITERALS + 1 + LENGTH_CODES;
+/* number of Literal or Length codes, including the END_BLOCK code */
+
+var D_CODES       = 30;
+/* number of distance codes */
+
+var BL_CODES      = 19;
+/* number of codes used to transfer the bit lengths */
+
+var HEAP_SIZE     = 2 * L_CODES + 1;
+/* maximum heap size */
+
+var MAX_BITS      = 15;
+/* All codes must not exceed MAX_BITS bits */
+
+var Buf_size      = 16;
+/* size of bit buffer in bi_buf */
+
+
+/* ===========================================================================
+ * Constants
+ */
+
+var MAX_BL_BITS = 7;
+/* Bit length codes must not exceed MAX_BL_BITS bits */
+
+var END_BLOCK   = 256;
+/* end of block literal code */
+
+var REP_3_6     = 16;
+/* repeat previous bit length 3-6 times (2 bits of repeat count) */
+
+var REPZ_3_10   = 17;
+/* repeat a zero length 3-10 times  (3 bits of repeat count) */
+
+var REPZ_11_138 = 18;
+/* repeat a zero length 11-138 times  (7 bits of repeat count) */
+
+/* eslint-disable comma-spacing,array-bracket-spacing */
+var extra_lbits =   /* extra bits for each length code */
+  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];
+
+var extra_dbits =   /* extra bits for each distance code */
+  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];
+
+var extra_blbits =  /* extra bits for each bit length code */
+  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];
+
+var bl_order =
+  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
+/* eslint-enable comma-spacing,array-bracket-spacing */
+
+/* The lengths of the bit length codes are sent in order of decreasing
+ * probability, to avoid transmitting the lengths for unused bit length codes.
+ */
+
+/* ===========================================================================
+ * Local data. These are initialized only once.
+ */
+
+// We pre-fill arrays with 0 to avoid uninitialized gaps
+
+var DIST_CODE_LEN = 512; /* see definition of array dist_code below */
+
+// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1
+var static_ltree  = new Array((L_CODES + 2) * 2);
+zero(static_ltree);
+/* The static literal tree. Since the bit lengths are imposed, there is no
+ * need for the L_CODES extra codes used during heap construction. However
+ * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
+ * below).
+ */
+
+var static_dtree  = new Array(D_CODES * 2);
+zero(static_dtree);
+/* The static distance tree. (Actually a trivial tree since all codes use
+ * 5 bits.)
+ */
+
+var _dist_code    = new Array(DIST_CODE_LEN);
+zero(_dist_code);
+/* Distance codes. The first 256 values correspond to the distances
+ * 3 .. 258, the last 256 values correspond to the top 8 bits of
+ * the 15 bit distances.
+ */
+
+var _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);
+zero(_length_code);
+/* length code for each normalized match length (0 == MIN_MATCH) */
+
+var base_length   = new Array(LENGTH_CODES);
+zero(base_length);
+/* First normalized length for each code (0 = MIN_MATCH) */
+
+var base_dist     = new Array(D_CODES);
+zero(base_dist);
+/* First normalized distance for each code (0 = distance of 1) */
+
+
+function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
+
+  this.static_tree  = static_tree;  /* static tree or NULL */
+  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */
+  this.extra_base   = extra_base;   /* base index for extra_bits */
+  this.elems        = elems;        /* max number of elements in the tree */
+  this.max_length   = max_length;   /* max bit length for the codes */
+
+  // show if `static_tree` has data or dummy - needed for monomorphic objects
+  this.has_stree    = static_tree && static_tree.length;
+}
+
+
+var static_l_desc;
+var static_d_desc;
+var static_bl_desc;
+
+
+function TreeDesc(dyn_tree, stat_desc) {
+  this.dyn_tree = dyn_tree;     /* the dynamic tree */
+  this.max_code = 0;            /* largest code with non zero frequency */
+  this.stat_desc = stat_desc;   /* the corresponding static tree */
+}
+
+
+
+function d_code(dist) {
+  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
+}
+
+
+/* ===========================================================================
+ * Output a short LSB first on the stream.
+ * IN assertion: there is enough room in pendingBuf.
+ */
+function put_short(s, w) {
+//    put_byte(s, (uch)((w) & 0xff));
+//    put_byte(s, (uch)((ush)(w) >> 8));
+  s.pending_buf[s.pending++] = (w) & 0xff;
+  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;
+}
+
+
+/* ===========================================================================
+ * Send a value on a given number of bits.
+ * IN assertion: length <= 16 and value fits in length bits.
+ */
+function send_bits(s, value, length) {
+  if (s.bi_valid > (Buf_size - length)) {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    put_short(s, s.bi_buf);
+    s.bi_buf = value >> (Buf_size - s.bi_valid);
+    s.bi_valid += length - Buf_size;
+  } else {
+    s.bi_buf |= (value << s.bi_valid) & 0xffff;
+    s.bi_valid += length;
+  }
+}
+
+
+function send_code(s, c, tree) {
+  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);
+}
+
+
+/* ===========================================================================
+ * Reverse the first len bits of a code, using straightforward code (a faster
+ * method would use a table)
+ * IN assertion: 1 <= len <= 15
+ */
+function bi_reverse(code, len) {
+  var res = 0;
+  do {
+    res |= code & 1;
+    code >>>= 1;
+    res <<= 1;
+  } while (--len > 0);
+  return res >>> 1;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer, keeping at most 7 bits in it.
+ */
+function bi_flush(s) {
+  if (s.bi_valid === 16) {
+    put_short(s, s.bi_buf);
+    s.bi_buf = 0;
+    s.bi_valid = 0;
+
+  } else if (s.bi_valid >= 8) {
+    s.pending_buf[s.pending++] = s.bi_buf & 0xff;
+    s.bi_buf >>= 8;
+    s.bi_valid -= 8;
+  }
+}
+
+
+/* ===========================================================================
+ * Compute the optimal bit lengths for a tree and update the total bit length
+ * for the current block.
+ * IN assertion: the fields freq and dad are set, heap[heap_max] and
+ *    above are the tree nodes sorted by increasing frequency.
+ * OUT assertions: the field len is set to the optimal bit length, the
+ *     array bl_count contains the frequencies for each bit length.
+ *     The length opt_len is updated; static_len is also updated if stree is
+ *     not null.
+ */
+function gen_bitlen(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc;    /* the tree descriptor */
+{
+  var tree            = desc.dyn_tree;
+  var max_code        = desc.max_code;
+  var stree           = desc.stat_desc.static_tree;
+  var has_stree       = desc.stat_desc.has_stree;
+  var extra           = desc.stat_desc.extra_bits;
+  var base            = desc.stat_desc.extra_base;
+  var max_length      = desc.stat_desc.max_length;
+  var h;              /* heap index */
+  var n, m;           /* iterate over the tree elements */
+  var bits;           /* bit length */
+  var xbits;          /* extra bits */
+  var f;              /* frequency */
+  var overflow = 0;   /* number of elements with bit length too large */
+
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    s.bl_count[bits] = 0;
+  }
+
+  /* In a first pass, compute the optimal bit lengths (which may
+   * overflow in the case of the bit length tree).
+   */
+  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */
+
+  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
+    n = s.heap[h];
+    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;
+    if (bits > max_length) {
+      bits = max_length;
+      overflow++;
+    }
+    tree[n * 2 + 1]/*.Len*/ = bits;
+    /* We overwrite tree[n].Dad which is no longer needed */
+
+    if (n > max_code) { continue; } /* not a leaf node */
+
+    s.bl_count[bits]++;
+    xbits = 0;
+    if (n >= base) {
+      xbits = extra[n - base];
+    }
+    f = tree[n * 2]/*.Freq*/;
+    s.opt_len += f * (bits + xbits);
+    if (has_stree) {
+      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);
+    }
+  }
+  if (overflow === 0) { return; }
+
+  // Trace((stderr,"\nbit length overflow\n"));
+  /* This happens for example on obj2 and pic of the Calgary corpus */
+
+  /* Find the first bit length which could increase: */
+  do {
+    bits = max_length - 1;
+    while (s.bl_count[bits] === 0) { bits--; }
+    s.bl_count[bits]--;      /* move one leaf down the tree */
+    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */
+    s.bl_count[max_length]--;
+    /* The brother of the overflow item also moves one step up,
+     * but this does not affect bl_count[max_length]
+     */
+    overflow -= 2;
+  } while (overflow > 0);
+
+  /* Now recompute all bit lengths, scanning in increasing frequency.
+   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
+   * lengths instead of fixing only the wrong ones. This idea is taken
+   * from 'ar' written by Haruhiko Okumura.)
+   */
+  for (bits = max_length; bits !== 0; bits--) {
+    n = s.bl_count[bits];
+    while (n !== 0) {
+      m = s.heap[--h];
+      if (m > max_code) { continue; }
+      if (tree[m * 2 + 1]/*.Len*/ !== bits) {
+        // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
+        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;
+        tree[m * 2 + 1]/*.Len*/ = bits;
+      }
+      n--;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Generate the codes for a given tree and bit counts (which need not be
+ * optimal).
+ * IN assertion: the array bl_count contains the bit length statistics for
+ * the given tree and the field len is set for all tree elements.
+ * OUT assertion: the field code is set for all tree elements of non
+ *     zero code length.
+ */
+function gen_codes(tree, max_code, bl_count)
+//    ct_data *tree;             /* the tree to decorate */
+//    int max_code;              /* largest code with non zero frequency */
+//    ushf *bl_count;            /* number of codes at each bit length */
+{
+  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */
+  var code = 0;              /* running code value */
+  var bits;                  /* bit index */
+  var n;                     /* code index */
+
+  /* The distribution counts are first used to generate the code values
+   * without bit reversal.
+   */
+  for (bits = 1; bits <= MAX_BITS; bits++) {
+    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
+  }
+  /* Check that the bit counts in bl_count are consistent. The last code
+   * must be all ones.
+   */
+  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
+  //        "inconsistent bit counts");
+  //Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
+
+  for (n = 0;  n <= max_code; n++) {
+    var len = tree[n * 2 + 1]/*.Len*/;
+    if (len === 0) { continue; }
+    /* Now reverse the bits */
+    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);
+
+    //Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
+    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
+  }
+}
+
+
+/* ===========================================================================
+ * Initialize the various 'constant' tables.
+ */
+function tr_static_init() {
+  var n;        /* iterates over tree elements */
+  var bits;     /* bit counter */
+  var length;   /* length value */
+  var code;     /* code value */
+  var dist;     /* distance index */
+  var bl_count = new Array(MAX_BITS + 1);
+  /* number of codes at each bit length for an optimal tree */
+
+  // do check in _tr_init()
+  //if (static_init_done) return;
+
+  /* For some embedded targets, global variables are not initialized: */
+/*#ifdef NO_INIT_GLOBAL_POINTERS
+  static_l_desc.static_tree = static_ltree;
+  static_l_desc.extra_bits = extra_lbits;
+  static_d_desc.static_tree = static_dtree;
+  static_d_desc.extra_bits = extra_dbits;
+  static_bl_desc.extra_bits = extra_blbits;
+#endif*/
+
+  /* Initialize the mapping length (0..255) -> length code (0..28) */
+  length = 0;
+  for (code = 0; code < LENGTH_CODES - 1; code++) {
+    base_length[code] = length;
+    for (n = 0; n < (1 << extra_lbits[code]); n++) {
+      _length_code[length++] = code;
+    }
+  }
+  //Assert (length == 256, "tr_static_init: length != 256");
+  /* Note that the length 255 (match length 258) can be represented
+   * in two different ways: code 284 + 5 bits or code 285, so we
+   * overwrite length_code[255] to use the best encoding:
+   */
+  _length_code[length - 1] = code;
+
+  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
+  dist = 0;
+  for (code = 0; code < 16; code++) {
+    base_dist[code] = dist;
+    for (n = 0; n < (1 << extra_dbits[code]); n++) {
+      _dist_code[dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: dist != 256");
+  dist >>= 7; /* from now on, all distances are divided by 128 */
+  for (; code < D_CODES; code++) {
+    base_dist[code] = dist << 7;
+    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
+      _dist_code[256 + dist++] = code;
+    }
+  }
+  //Assert (dist == 256, "tr_static_init: 256+dist != 512");
+
+  /* Construct the codes of the static literal tree */
+  for (bits = 0; bits <= MAX_BITS; bits++) {
+    bl_count[bits] = 0;
+  }
+
+  n = 0;
+  while (n <= 143) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  while (n <= 255) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 9;
+    n++;
+    bl_count[9]++;
+  }
+  while (n <= 279) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 7;
+    n++;
+    bl_count[7]++;
+  }
+  while (n <= 287) {
+    static_ltree[n * 2 + 1]/*.Len*/ = 8;
+    n++;
+    bl_count[8]++;
+  }
+  /* Codes 286 and 287 do not exist, but we must include them in the
+   * tree construction to get a canonical Huffman tree (longest code
+   * all ones)
+   */
+  gen_codes(static_ltree, L_CODES + 1, bl_count);
+
+  /* The static distance tree is trivial: */
+  for (n = 0; n < D_CODES; n++) {
+    static_dtree[n * 2 + 1]/*.Len*/ = 5;
+    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
+  }
+
+  // Now data ready and we can init static trees
+  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
+  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);
+  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);
+
+  //static_init_done = true;
+}
+
+
+/* ===========================================================================
+ * Initialize a new block.
+ */
+function init_block(s) {
+  var n; /* iterates over tree elements */
+
+  /* Initialize the trees. */
+  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
+  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
+
+  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
+  s.opt_len = s.static_len = 0;
+  s.last_lit = s.matches = 0;
+}
+
+
+/* ===========================================================================
+ * Flush the bit buffer and align the output on a byte boundary
+ */
+function bi_windup(s)
+{
+  if (s.bi_valid > 8) {
+    put_short(s, s.bi_buf);
+  } else if (s.bi_valid > 0) {
+    //put_byte(s, (Byte)s->bi_buf);
+    s.pending_buf[s.pending++] = s.bi_buf;
+  }
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+}
+
+/* ===========================================================================
+ * Copy a stored block, storing first the length and its
+ * one's complement if requested.
+ */
+function copy_block(s, buf, len, header)
+//DeflateState *s;
+//charf    *buf;    /* the input data */
+//unsigned len;     /* its length */
+//int      header;  /* true if block header must be written */
+{
+  bi_windup(s);        /* align on byte boundary */
+
+  if (header) {
+    put_short(s, len);
+    put_short(s, ~len);
+  }
+//  while (len--) {
+//    put_byte(s, *buf++);
+//  }
+  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
+  s.pending += len;
+}
+
+/* ===========================================================================
+ * Compares to subtrees, using the tree depth as tie breaker when
+ * the subtrees have equal frequency. This minimizes the worst case length.
+ */
+function smaller(tree, n, m, depth) {
+  var _n2 = n * 2;
+  var _m2 = m * 2;
+  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||
+         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));
+}
+
+/* ===========================================================================
+ * Restore the heap property by moving down the tree starting at node k,
+ * exchanging a node with the smallest of its two sons if necessary, stopping
+ * when the heap property is re-established (each father smaller than its
+ * two sons).
+ */
+function pqdownheap(s, tree, k)
+//    deflate_state *s;
+//    ct_data *tree;  /* the tree to restore */
+//    int k;               /* node to move down */
+{
+  var v = s.heap[k];
+  var j = k << 1;  /* left son of k */
+  while (j <= s.heap_len) {
+    /* Set j to the smallest of the two sons: */
+    if (j < s.heap_len &&
+      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
+      j++;
+    }
+    /* Exit if v is smaller than both sons */
+    if (smaller(tree, v, s.heap[j], s.depth)) { break; }
+
+    /* Exchange v with the smallest son */
+    s.heap[k] = s.heap[j];
+    k = j;
+
+    /* And continue down the tree, setting j to the left son of k */
+    j <<= 1;
+  }
+  s.heap[k] = v;
+}
+
+
+// inlined manually
+// var SMALLEST = 1;
+
+/* ===========================================================================
+ * Send the block data compressed using the given Huffman trees
+ */
+function compress_block(s, ltree, dtree)
+//    deflate_state *s;
+//    const ct_data *ltree; /* literal tree */
+//    const ct_data *dtree; /* distance tree */
+{
+  var dist;           /* distance of matched string */
+  var lc;             /* match length or unmatched char (if dist == 0) */
+  var lx = 0;         /* running index in l_buf */
+  var code;           /* the code to send */
+  var extra;          /* number of extra bits to send */
+
+  if (s.last_lit !== 0) {
+    do {
+      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);
+      lc = s.pending_buf[s.l_buf + lx];
+      lx++;
+
+      if (dist === 0) {
+        send_code(s, lc, ltree); /* send a literal byte */
+        //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
+      } else {
+        /* Here, lc is the match length - MIN_MATCH */
+        code = _length_code[lc];
+        send_code(s, code + LITERALS + 1, ltree); /* send the length code */
+        extra = extra_lbits[code];
+        if (extra !== 0) {
+          lc -= base_length[code];
+          send_bits(s, lc, extra);       /* send the extra length bits */
+        }
+        dist--; /* dist is now the match distance - 1 */
+        code = d_code(dist);
+        //Assert (code < D_CODES, "bad d_code");
+
+        send_code(s, code, dtree);       /* send the distance code */
+        extra = extra_dbits[code];
+        if (extra !== 0) {
+          dist -= base_dist[code];
+          send_bits(s, dist, extra);   /* send the extra distance bits */
+        }
+      } /* literal or match pair ? */
+
+      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
+      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
+      //       "pendingBuf overflow");
+
+    } while (lx < s.last_lit);
+  }
+
+  send_code(s, END_BLOCK, ltree);
+}
+
+
+/* ===========================================================================
+ * Construct one Huffman tree and assigns the code bit strings and lengths.
+ * Update the total bit length for the current block.
+ * IN assertion: the field freq is set for all tree elements.
+ * OUT assertions: the fields len and code are set to the optimal bit length
+ *     and corresponding code. The length opt_len is updated; static_len is
+ *     also updated if stree is not null. The field max_code is set.
+ */
+function build_tree(s, desc)
+//    deflate_state *s;
+//    tree_desc *desc; /* the tree descriptor */
+{
+  var tree     = desc.dyn_tree;
+  var stree    = desc.stat_desc.static_tree;
+  var has_stree = desc.stat_desc.has_stree;
+  var elems    = desc.stat_desc.elems;
+  var n, m;          /* iterate over heap elements */
+  var max_code = -1; /* largest code with non zero frequency */
+  var node;          /* new node being created */
+
+  /* Construct the initial heap, with least frequent element in
+   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
+   * heap[0] is not used.
+   */
+  s.heap_len = 0;
+  s.heap_max = HEAP_SIZE;
+
+  for (n = 0; n < elems; n++) {
+    if (tree[n * 2]/*.Freq*/ !== 0) {
+      s.heap[++s.heap_len] = max_code = n;
+      s.depth[n] = 0;
+
+    } else {
+      tree[n * 2 + 1]/*.Len*/ = 0;
+    }
+  }
+
+  /* The pkzip format requires that at least one distance code exists,
+   * and that at least one bit should be sent even if there is only one
+   * possible code. So to avoid special checks later on we force at least
+   * two codes of non zero frequency.
+   */
+  while (s.heap_len < 2) {
+    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);
+    tree[node * 2]/*.Freq*/ = 1;
+    s.depth[node] = 0;
+    s.opt_len--;
+
+    if (has_stree) {
+      s.static_len -= stree[node * 2 + 1]/*.Len*/;
+    }
+    /* node is 0 or 1 so it does not have extra bits */
+  }
+  desc.max_code = max_code;
+
+  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
+   * establish sub-heaps of increasing lengths:
+   */
+  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }
+
+  /* Construct the Huffman tree by repeatedly combining the least two
+   * frequent nodes.
+   */
+  node = elems;              /* next internal node of the tree */
+  do {
+    //pqremove(s, tree, n);  /* n = node of least frequency */
+    /*** pqremove ***/
+    n = s.heap[1/*SMALLEST*/];
+    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+    /***/
+
+    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */
+
+    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */
+    s.heap[--s.heap_max] = m;
+
+    /* Create a new node father of n and m */
+    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;
+    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
+    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;
+
+    /* and insert the new node in the heap */
+    s.heap[1/*SMALLEST*/] = node++;
+    pqdownheap(s, tree, 1/*SMALLEST*/);
+
+  } while (s.heap_len >= 2);
+
+  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];
+
+  /* At this point, the fields freq and dad are set. We can now
+   * generate the bit lengths.
+   */
+  gen_bitlen(s, desc);
+
+  /* The field len is now set, we can generate the bit codes */
+  gen_codes(tree, max_code, s.bl_count);
+}
+
+
+/* ===========================================================================
+ * Scan a literal or distance tree to determine the frequencies of the codes
+ * in the bit length tree.
+ */
+function scan_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree;   /* the tree to be scanned */
+//    int max_code;    /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      s.bl_tree[curlen * 2]/*.Freq*/ += count;
+
+    } else if (curlen !== 0) {
+
+      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
+      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
+
+    } else if (count <= 10) {
+      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
+
+    } else {
+      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
+    }
+
+    count = 0;
+    prevlen = curlen;
+
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Send a literal or distance tree in compressed form, using the codes in
+ * bl_tree.
+ */
+function send_tree(s, tree, max_code)
+//    deflate_state *s;
+//    ct_data *tree; /* the tree to be scanned */
+//    int max_code;       /* and its largest code of non zero frequency */
+{
+  var n;                     /* iterates over all tree elements */
+  var prevlen = -1;          /* last emitted length */
+  var curlen;                /* length of current code */
+
+  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
+
+  var count = 0;             /* repeat count of the current code */
+  var max_count = 7;         /* max repeat count */
+  var min_count = 4;         /* min repeat count */
+
+  /* tree[max_code+1].Len = -1; */  /* guard already set */
+  if (nextlen === 0) {
+    max_count = 138;
+    min_count = 3;
+  }
+
+  for (n = 0; n <= max_code; n++) {
+    curlen = nextlen;
+    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
+
+    if (++count < max_count && curlen === nextlen) {
+      continue;
+
+    } else if (count < min_count) {
+      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);
+
+    } else if (curlen !== 0) {
+      if (curlen !== prevlen) {
+        send_code(s, curlen, s.bl_tree);
+        count--;
+      }
+      //Assert(count >= 3 && count <= 6, " 3_6?");
+      send_code(s, REP_3_6, s.bl_tree);
+      send_bits(s, count - 3, 2);
+
+    } else if (count <= 10) {
+      send_code(s, REPZ_3_10, s.bl_tree);
+      send_bits(s, count - 3, 3);
+
+    } else {
+      send_code(s, REPZ_11_138, s.bl_tree);
+      send_bits(s, count - 11, 7);
+    }
+
+    count = 0;
+    prevlen = curlen;
+    if (nextlen === 0) {
+      max_count = 138;
+      min_count = 3;
+
+    } else if (curlen === nextlen) {
+      max_count = 6;
+      min_count = 3;
+
+    } else {
+      max_count = 7;
+      min_count = 4;
+    }
+  }
+}
+
+
+/* ===========================================================================
+ * Construct the Huffman tree for the bit lengths and return the index in
+ * bl_order of the last bit length code to send.
+ */
+function build_bl_tree(s) {
+  var max_blindex;  /* index of last bit length code of non zero freq */
+
+  /* Determine the bit length frequencies for literal and distance trees */
+  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
+  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
+
+  /* Build the bit length tree: */
+  build_tree(s, s.bl_desc);
+  /* opt_len now includes the length of the tree representations, except
+   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
+   */
+
+  /* Determine the number of bit length codes to send. The pkzip format
+   * requires that at least 4 bit length codes be sent. (appnote.txt says
+   * 3 but the actual value used is 4.)
+   */
+  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
+    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {
+      break;
+    }
+  }
+  /* Update opt_len to include the bit length tree and counts */
+  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
+  //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
+  //        s->opt_len, s->static_len));
+
+  return max_blindex;
+}
+
+
+/* ===========================================================================
+ * Send the header for a block using dynamic Huffman trees: the counts, the
+ * lengths of the bit length codes, the literal tree and the distance tree.
+ * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
+ */
+function send_all_trees(s, lcodes, dcodes, blcodes)
+//    deflate_state *s;
+//    int lcodes, dcodes, blcodes; /* number of codes for each tree */
+{
+  var rank;                    /* index in bl_order */
+
+  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
+  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
+  //        "too many codes");
+  //Tracev((stderr, "\nbl counts: "));
+  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
+  send_bits(s, dcodes - 1,   5);
+  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */
+  for (rank = 0; rank < blcodes; rank++) {
+    //Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
+    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);
+  }
+  //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */
+  //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
+
+  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */
+  //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
+}
+
+
+/* ===========================================================================
+ * Check if the data type is TEXT or BINARY, using the following algorithm:
+ * - TEXT if the two conditions below are satisfied:
+ *    a) There are no non-portable control characters belonging to the
+ *       "black list" (0..6, 14..25, 28..31).
+ *    b) There is at least one printable character belonging to the
+ *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
+ * - BINARY otherwise.
+ * - The following partially-portable control characters form a
+ *   "gray list" that is ignored in this detection algorithm:
+ *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
+ * IN assertion: the fields Freq of dyn_ltree are set.
+ */
+function detect_data_type(s) {
+  /* black_mask is the bit mask of black-listed bytes
+   * set bits 0..6, 14..25, and 28..31
+   * 0xf3ffc07f = binary 11110011111111111100000001111111
+   */
+  var black_mask = 0xf3ffc07f;
+  var n;
+
+  /* Check for non-textual ("black-listed") bytes. */
+  for (n = 0; n <= 31; n++, black_mask >>>= 1) {
+    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {
+      return Z_BINARY;
+    }
+  }
+
+  /* Check for textual ("white-listed") bytes. */
+  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||
+      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
+    return Z_TEXT;
+  }
+  for (n = 32; n < LITERALS; n++) {
+    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
+      return Z_TEXT;
+    }
+  }
+
+  /* There are no "black-listed" or "white-listed" bytes:
+   * this stream either is empty or has tolerated ("gray-listed") bytes only.
+   */
+  return Z_BINARY;
+}
+
+
+var static_init_done = false;
+
+/* ===========================================================================
+ * Initialize the tree data structures for a new zlib stream.
+ */
+function _tr_init(s)
+{
+
+  if (!static_init_done) {
+    tr_static_init();
+    static_init_done = true;
+  }
+
+  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);
+  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);
+  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
+
+  s.bi_buf = 0;
+  s.bi_valid = 0;
+
+  /* Initialize the first block of the first file: */
+  init_block(s);
+}
+
+
+/* ===========================================================================
+ * Send a stored block
+ */
+function _tr_stored_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */
+  copy_block(s, buf, stored_len, true); /* with header */
+}
+
+
+/* ===========================================================================
+ * Send one empty static block to give enough lookahead for inflate.
+ * This takes 10 bits, of which 7 may remain in the bit buffer.
+ */
+function _tr_align(s) {
+  send_bits(s, STATIC_TREES << 1, 3);
+  send_code(s, END_BLOCK, static_ltree);
+  bi_flush(s);
+}
+
+
+/* ===========================================================================
+ * Determine the best encoding for the current block: dynamic trees, static
+ * trees or store, and output the encoded block to the zip file.
+ */
+function _tr_flush_block(s, buf, stored_len, last)
+//DeflateState *s;
+//charf *buf;       /* input block, or NULL if too old */
+//ulg stored_len;   /* length of input block */
+//int last;         /* one if this is the last block for a file */
+{
+  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */
+  var max_blindex = 0;        /* index of last bit length code of non zero freq */
+
+  /* Build the Huffman trees unless a stored block is forced */
+  if (s.level > 0) {
+
+    /* Check if the file is binary or text */
+    if (s.strm.data_type === Z_UNKNOWN) {
+      s.strm.data_type = detect_data_type(s);
+    }
+
+    /* Construct the literal and distance trees */
+    build_tree(s, s.l_desc);
+    // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+
+    build_tree(s, s.d_desc);
+    // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
+    //        s->static_len));
+    /* At this point, opt_len and static_len are the total bit lengths of
+     * the compressed block data, excluding the tree representations.
+     */
+
+    /* Build the bit length tree for the above two trees, and get the index
+     * in bl_order of the last bit length code to send.
+     */
+    max_blindex = build_bl_tree(s);
+
+    /* Determine the best encoding. Compute the block lengths in bytes. */
+    opt_lenb = (s.opt_len + 3 + 7) >>> 3;
+    static_lenb = (s.static_len + 3 + 7) >>> 3;
+
+    // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
+    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
+    //        s->last_lit));
+
+    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }
+
+  } else {
+    // Assert(buf != (char*)0, "lost buf");
+    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
+  }
+
+  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {
+    /* 4: two words for the lengths */
+
+    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
+     * Otherwise we can't have processed more than WSIZE input bytes since
+     * the last block flush, because compression would have been
+     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
+     * transform a block into a stored block.
+     */
+    _tr_stored_block(s, buf, stored_len, last);
+
+  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
+
+    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
+    compress_block(s, static_ltree, static_dtree);
+
+  } else {
+    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
+    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
+    compress_block(s, s.dyn_ltree, s.dyn_dtree);
+  }
+  // Assert (s->compressed_len == s->bits_sent, "bad compressed size");
+  /* The above check is made mod 2^32, for files larger than 512 MB
+   * and uLong implemented on 32 bits.
+   */
+  init_block(s);
+
+  if (last) {
+    bi_windup(s);
+  }
+  // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
+  //       s->compressed_len-7*last));
+}
+
+/* ===========================================================================
+ * Save the match info and tally the frequency counts. Return true if
+ * the current block must be flushed.
+ */
+function _tr_tally(s, dist, lc)
+//    deflate_state *s;
+//    unsigned dist;  /* distance of matched string */
+//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
+{
+  //var out_length, in_length, dcode;
+
+  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;
+  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;
+
+  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;
+  s.last_lit++;
+
+  if (dist === 0) {
+    /* lc is the unmatched char */
+    s.dyn_ltree[lc * 2]/*.Freq*/++;
+  } else {
+    s.matches++;
+    /* Here, lc is the match length - MIN_MATCH */
+    dist--;             /* dist = match distance - 1 */
+    //Assert((ush)dist < (ush)MAX_DIST(s) &&
+    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
+    //       (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
+
+    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;
+    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
+  }
+
+// (!) This block is disabled in zlib defailts,
+// don't enable it for binary compatibility
+
+//#ifdef TRUNCATE_BLOCK
+//  /* Try to guess if it is profitable to stop the current block here */
+//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {
+//    /* Compute an upper bound for the compressed length */
+//    out_length = s.last_lit*8;
+//    in_length = s.strstart - s.block_start;
+//
+//    for (dcode = 0; dcode < D_CODES; dcode++) {
+//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);
+//    }
+//    out_length >>>= 3;
+//    //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
+//    //       s->last_lit, in_length, out_length,
+//    //       100L - out_length*100L/in_length));
+//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {
+//      return true;
+//    }
+//  }
+//#endif
+
+  return (s.last_lit === s.lit_bufsize - 1);
+  /* We avoid equality with lit_bufsize because of wraparound at 64K
+   * on 16 bit machines and because stored blocks are restricted to
+   * 64K-1 bytes.
+   */
+}
+
+exports._tr_init  = _tr_init;
+exports._tr_stored_block = _tr_stored_block;
+exports._tr_flush_block  = _tr_flush_block;
+exports._tr_tally = _tr_tally;
+exports._tr_align = _tr_align;
+
+},{"../utils/common":62}],74:[function(require,module,exports){
+'use strict';
+
+// (C) 1995-2013 Jean-loup Gailly and Mark Adler
+// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+//   claim that you wrote the original software. If you use this software
+//   in a product, an acknowledgment in the product documentation would be
+//   appreciated but is not required.
+// 2. Altered source versions must be plainly marked as such, and must not be
+//   misrepresented as being the original software.
+// 3. This notice may not be removed or altered from any source distribution.
+
+function ZStream() {
+  /* next input byte */
+  this.input = null; // JS specific, because we have no pointers
+  this.next_in = 0;
+  /* number of bytes available at input */
+  this.avail_in = 0;
+  /* total number of input bytes read so far */
+  this.total_in = 0;
+  /* next output byte should be put there */
+  this.output = null; // JS specific, because we have no pointers
+  this.next_out = 0;
+  /* remaining free space at output */
+  this.avail_out = 0;
+  /* total number of bytes output so far */
+  this.total_out = 0;
+  /* last error message, NULL if no error */
+  this.msg = ''/*Z_NULL*/;
+  /* not visible by applications */
+  this.state = null;
+  /* best guess about the data type: binary or text */
+  this.data_type = 2/*Z_UNKNOWN*/;
+  /* adler32 value of the uncompressed data */
+  this.adler = 0;
+}
+
+module.exports = ZStream;
+
+},{}]},{},[10])(10)
+});
\ No newline at end of file
diff --git a/apidocs/2.1.6/jquery/jszip/dist/jszip.min.js b/apidocs/2.1.6/jquery/jszip/dist/jszip.min.js
new file mode 100644
index 0000000..b918873
--- /dev/null
+++ b/apidocs/2.1.6/jquery/jszip/dist/jszip.min.js
@@ -0,0 +1,15 @@
+/*!
+
+JSZip v3.1.5 - A JavaScript class for generating and reading zip files
+<http://stuartk.com/jszip>
+
+(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
+Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
+
+JSZip uses the library pako released under the MIT license :
+https://github.com/nodeca/pako/blob/master/LICENSE
+*/
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";var d=a("./utils"),e=a("./support"),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";c.encode=function(a){for(var b,c,e,g,h,i,j,k=[],l=0,m=a.length,n=m,o="string"!==d.getTypeOf(a);l<a.length;)n=m-l,o?(b=a[l++],c=l<m?a[l++]:0,e=l<m?a[l++]:0):(b=a.charCodeAt(l++),c=l<m?a.charCodeAt(l++):0,e=l<m?a.charCodeAt(l++):0),g=b>>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},c.decode=function(a){var b,c,d,g,h,i,j,k=0,l=0,m="data:";if(a.substr(0,m.length)===m)throw new Error("Invalid base64 input, it looks like a data url.");a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");var n=3*a.length/4;if(a.charAt(a.length-1)===f.charAt(64)&&n--,a.charAt(a.length-2)===f.charAt(64)&&n--,n%1!==0)throw new Error("Invalid base64 input, bad content length.");var o;for(o=e.uint8array?new Uint8Array(0|n):new Array(0|n);k<a.length;)g=f.indexOf(a.charAt(k++)),h=f.indexOf(a.charAt(k++)),i=f.indexOf(a.charAt(k++)),j=f.indexOf(a.charAt(k++)),b=g<<2|h>>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,o[l++]=b,64!==i&&(o[l++]=c),64!==j&&(o[l++]=d);return o}},{"./support":30,"./utils":32}],2:[function(a,b,c){"use strict";function d(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}var e=a("./external"),f=a("./stream/DataWorker"),g=a("./stream/DataLengthProbe"),h=a("./stream/Crc32Probe"),g=a("./stream/DataLengthProbe");d.prototype={getContentWorker:function(){var a=new f(e.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new f(e.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},d.createWorkerFrom=function(a,b,c){return a.pipe(new h).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},b.exports=d},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(a,b,c){"use strict";var d=a("./stream/GenericWorker");c.STORE={magic:"\0\0",compressWorker:function(a){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},c.DEFLATE=a("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b[g])];return a^-1}function f(a,b,c,d){var e=h,f=d+c;a^=-1;for(var g=d;g<f;g++)a=a>>>8^e[255&(a^b.charCodeAt(g))];return a^-1}var g=a("./utils"),h=d();b.exports=function(a,b){if("undefined"==typeof a||!a.length)return 0;var c="string"!==g.getTypeOf(a);return c?e(0|b,a,a.length,0):f(0|b,a,a.length,0)}},{"./utils":32}],5:[function(a,b,c){"use strict";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!0,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],6:[function(a,b,c){"use strict";var d=null;d="undefined"!=typeof Promise?Promise:a("lie"),b.exports={Promise:d}},{lie:58}],7:[function(a,b,c){"use strict";function d(a,b){h.call(this,"FlateWorker/"+a),this._pako=null,this._pakoAction=a,this._pakoOptions=b,this.meta={}}var e="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,f=a("pako"),g=a("./utils"),h=a("./stream/GenericWorker"),i=e?"uint8array":"array";c.magic="\b\0",g.inherits(d,h),d.prototype.processChunk=function(a){this.meta=a.meta,null===this._pako&&this._createPako(),this._pako.push(g.transformTo(i,a.data),!1)},d.prototype.flush=function(){h.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},d.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},d.prototype._createPako=function(){this._pako=new f[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var a=this;this._pako.onData=function(b){a.push({data:b,meta:a.meta})}},c.compressWorker=function(a){return new d("Deflate",a)},c.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:59}],8:[function(a,b,c){"use strict";function d(a,b,c,d){f.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}var e=a("../utils"),f=a("../stream/GenericWorker"),g=a("../utf8"),h=a("../crc32"),i=a("../signature"),j=function(a,b){var c,d="";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},k=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},l=function(a,b){return 63&(a||0)},m=function(a,b,c,d,f,m){var n,o,p=a.file,q=a.compression,r=m!==g.utf8encode,s=e.transformTo("string",m(p.name)),t=e.transformTo("string",g.utf8encode(p.name)),u=p.comment,v=e.transformTo("string",m(u)),w=e.transformTo("string",g.utf8encode(u)),x=t.length!==p.name.length,y=w.length!==u.length,z="",A="",B="",C=p.dir,D=p.date,E={crc32:0,compressedSize:0,uncompressedSize:0};b&&!c||(E.crc32=a.crc32,E.compressedSize=a.compressedSize,E.uncompressedSize=a.uncompressedSize);var F=0;b&&(F|=8),r||!x&&!y||(F|=2048);var G=0,H=0;C&&(G|=16),"UNIX"===f?(H=798,G|=k(p.unixPermissions,C)):(H=20,G|=l(p.dosPermissions,C)),n=D.getUTCHours(),n<<=6,n|=D.getUTCMinutes(),n<<=5,n|=D.getUTCSeconds()/2,o=D.getUTCFullYear()-1980,o<<=4,o|=D.getUTCMonth()+1,o<<=5,o|=D.getUTCDate(),x&&(A=j(1,1)+j(h(s),4)+t,z+="up"+j(A.length,2)+A),y&&(B=j(1,1)+j(h(v),4)+w,z+="uc"+j(B.length,2)+B);var I="";I+="\n\0",I+=j(F,2),I+=q.magic,I+=j(n,2),I+=j(o,2),I+=j(E.crc32,4),I+=j(E.compressedSize,4),I+=j(E.uncompressedSize,4),I+=j(s.length,2),I+=j(z.length,2);var J=i.LOCAL_FILE_HEADER+I+s+z,K=i.CENTRAL_FILE_HEADER+j(H,2)+I+j(v.length,2)+"\0\0\0\0"+j(G,4)+j(d,4)+s+z+v;return{fileRecord:J,dirRecord:K}},n=function(a,b,c,d,f){var g="",h=e.transformTo("string",f(d));return g=i.CENTRAL_DIRECTORY_END+"\0\0\0\0"+j(a,2)+j(a,2)+j(b,4)+j(c,4)+j(h.length,2)+h},o=function(a){var b="";return b=i.DATA_DESCRIPTOR+j(a.crc32,4)+j(a.compressedSize,4)+j(a.uncompressedSize,4)};e.inherits(d,f),d.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,f.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},d.prototype.openedSource=function(a){this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name;var b=this.streamFiles&&!a.file.dir;if(b){var c=m(a,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(a){this.accumulate=!1;var b=this.streamFiles&&!a.file.dir,c=m(a,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),b)this.push({data:o(a),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b<this.dirRecords.length;b++)this.push({data:this.dirRecords[b],meta:{percent:100}});var c=this.bytesWritten-a,d=n(this.dirRecords.length,c,a,this.zipComment,this.encodeFileName);this.push({data:d,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(a){this._sources.push(a);var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.closedSource(b.previous.streamInfo),b._sources.length?b.prepareNextSource():b.end()}),a.on("error",function(a){b.error(a)}),this},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(a){var b=this._sources;if(!f.prototype.error.call(this,a))return!1;for(var c=0;c<b.length;c++)try{b[c].error(a)}catch(a){}return!0},d.prototype.lock=function(){f.prototype.lock.call(this);for(var a=this._sources,b=0;b<a.length;b++)a[b].lock()},b.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(a,b,c){"use strict";var d=a("../compressions"),e=a("./ZipFileWorker"),f=function(a,b){var c=a||b,e=d[c];if(!e)throw new Error(c+" is not a valid compression method !");return e};c.generateWorker=function(a,b,c){var d=new e(b.streamFiles,c,b.platform,b.encodeFileName),g=0;try{a.forEach(function(a,c){g++;var e=f(c.options.compression,b.compression),h=c.options.compressionOptions||b.compressionOptions||{},i=c.dir,j=c.date;c._compressWorker(e,h).withStreamInfo("file",{name:a,dir:i,date:j,comment:c.comment||"",unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions}).pipe(d)}),d.entriesCount=g}catch(h){d.error(h)}return d}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(a,b,c){"use strict";function d(){if(!(this instanceof d))return new d;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files={},this.comment=null,this.root="",this.clone=function(){var a=new d;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a}}d.prototype=a("./object"),d.prototype.loadAsync=a("./load"),d.support=a("./support"),d.defaults=a("./defaults"),d.version="3.1.5",d.loadAsync=function(a,b){return(new d).loadAsync(a,b)},d.external=a("./external"),b.exports=d},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(a,b,c){"use strict";function d(a){return new f.Promise(function(b,c){var d=a.decompressed.getContentWorker().pipe(new i);d.on("error",function(a){c(a)}).on("end",function(){d.streamInfo.crc32!==a.decompressed.crc32?c(new Error("Corrupted zip : CRC32 mismatch")):b()}).resume()})}var e=a("./utils"),f=a("./external"),g=a("./utf8"),e=a("./utils"),h=a("./zipEntries"),i=a("./stream/Crc32Probe"),j=a("./nodejsUtils");b.exports=function(a,b){var c=this;return b=e.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:g.utf8decode}),j.isNode&&j.isStream(a)?f.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):e.prepareContent("the loaded zip file",a,!0,b.optimizedBinaryString,b.base64).then(function(a){var c=new h(b);return c.load(a),c}).then(function(a){var c=[f.Promise.resolve(a)],e=a.files;if(b.checkCRC32)for(var g=0;g<e.length;g++)c.push(d(e[g]));return f.Promise.all(c)}).then(function(a){for(var d=a.shift(),e=d.files,f=0;f<e.length;f++){var g=e[f];c.file(g.fileNameStr,g.decompressed,{binary:!0,optimizedBinaryString:!0,date:g.date,dir:g.dir,comment:g.fileCommentStr.length?g.fileCommentStr:null,unixPermissions:g.unixPermissions,dosPermissions:g.dosPermissions,createFolders:b.createFolders})}return d.zipComment.length&&(c.comment=d.zipComment),c})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(a,b,c){"use strict";function d(a,b){f.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}var e=a("../utils"),f=a("../stream/GenericWorker");e.inherits(d,f),d.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},d.prototype.pause=function(){return!!f.prototype.pause.call(this)&&(this._stream.pause(),!0)},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},b.exports=d},{"../stream/GenericWorker":28,"../utils":32}],13:[function(a,b,c){"use strict";function d(a,b,c){e.call(this,b),this._helper=a;var d=this;a.on("data",function(a,b){d.push(a)||d._helper.pause(),c&&c(b)}).on("error",function(a){d.emit("error",a)}).on("end",function(){d.push(null)})}var e=a("readable-stream").Readable,f=a("../utils");f.inherits(d,e),d.prototype._read=function(){this._helper.resume()},b.exports=d},{"../utils":32,"readable-stream":16}],14:[function(a,b,c){"use strict";b.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(a,b){return new Buffer(a,b)},allocBuffer:function(a){return Buffer.alloc?Buffer.alloc(a):new Buffer(a)},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&"function"==typeof a.on&&"function"==typeof a.pause&&"function"==typeof a.resume}}},{}],15:[function(a,b,c){"use strict";function d(a){return"[object RegExp]"===Object.prototype.toString.call(a)}var e=a("./utf8"),f=a("./utils"),g=a("./stream/GenericWorker"),h=a("./stream/StreamHelper"),i=a("./defaults"),j=a("./compressedObject"),k=a("./zipObject"),l=a("./generate"),m=a("./nodejsUtils"),n=a("./nodejs/NodejsStreamInputAdapter"),o=function(a,b,c){var d,e=f.getTypeOf(b),h=f.extend(c||{},i);h.date=h.date||new Date,null!==h.compression&&(h.compression=h.compression.toUpperCase()),"string"==typeof h.unixPermissions&&(h.unixPermissions=parseInt(h.unixPermissions,8)),h.unixPermissions&&16384&h.unixPermissions&&(h.dir=!0),h.dosPermissions&&16&h.dosPermissions&&(h.dir=!0),h.dir&&(a=q(a)),h.createFolders&&(d=p(a))&&r.call(this,d,!0);var l="string"===e&&h.binary===!1&&h.base64===!1;c&&"undefined"!=typeof c.binary||(h.binary=!l);var o=b instanceof j&&0===b.uncompressedSize;(o||h.dir||!b||0===b.length)&&(h.base64=!1,h.binary=!0,b="",h.compression="STORE",e="string");var s=null;s=b instanceof j||b instanceof g?b:m.isNode&&m.isStream(b)?new n(a,b):f.prepareContent(a,b,h.binary,h.optimizedBinaryString,h.base64);var t=new k(a,s,h);this.files[a]=t},p=function(a){"/"===a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf("/");return b>0?a.substring(0,b):""},q=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},r=function(a,b){return b="undefined"!=typeof b?b:i.createFolders,a=q(a),this.files[a]||o.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},s={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],c=b.slice(this.root.length,b.length),c&&b.slice(0,this.root.length)===this.root&&a(c,d))},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1===arguments.length){if(d(a)){var e=a;return this.filter(function(a,b){return!b.dir&&e.test(a)})}var f=this.files[this.root+a];return f&&!f.dir?f:null}return a=this.root+a,o.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(d(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=r.call(this,b),e=this.clone();return e.root=c.name,e},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(a){var b,c={};try{if(c=f.extend(a||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:e.utf8encode}),c.type=c.type.toLowerCase(),c.compression=c.compression.toUpperCase(),"binarystring"===c.type&&(c.type="string"),!c.type)throw new Error("No output type specified.");f.checkSupport(c.type),"darwin"!==c.platform&&"freebsd"!==c.platform&&"linux"!==c.platform&&"sunos"!==c.platform||(c.platform="UNIX"),"win32"===c.platform&&(c.platform="DOS");var d=c.comment||this.comment||"";b=l.generateWorker(this,c,d)}catch(i){b=new g("error"),b.error(i)}return new h(b,c.type||"string",c.mimeType)},generateAsync:function(a,b){return this.generateInternalStream(a).accumulate(b)},generateNodeStream:function(a,b){return a=a||{},a.type||(a.type="nodebuffer"),this.generateInternalStream(a).toNodejsStream(b)}};b.exports=s},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(a,b,c){b.exports=a("stream")},{stream:void 0}],17:[function(a,b,c){"use strict";function d(a){e.call(this,a);for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data[this.zero+a]},d.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],18:[function(a,b,c){"use strict";function d(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}var e=a("../utils");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo("string",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readAndCheckSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},b.exports=d},{"../utils":32}],19:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./Uint8ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./DataReader"),f=a("../utils");f.inherits(d,e),d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readAndCheckSignature=function(a){var b=this.readData(4);return a===b},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./DataReader":18}],21:[function(a,b,c){"use strict";function d(a){e.call(this,a)}var e=a("./ArrayReader"),f=a("../utils");f.inherits(d,e),d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{"../utils":32,"./ArrayReader":17}],22:[function(a,b,c){"use strict";var d=a("../utils"),e=a("../support"),f=a("./ArrayReader"),g=a("./StringReader"),h=a("./NodeBufferReader"),i=a("./Uint8ArrayReader");b.exports=function(a){var b=d.getTypeOf(a);return d.checkSupport(b),"string"!==b||e.uint8array?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(a,b,c){"use strict";c.LOCAL_FILE_HEADER="PK",c.CENTRAL_FILE_HEADER="PK",c.CENTRAL_DIRECTORY_END="PK",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",c.ZIP64_CENTRAL_DIRECTORY_END="PK",c.DATA_DESCRIPTOR="PK\b"},{}],24:[function(a,b,c){"use strict";function d(a){e.call(this,"ConvertWorker to "+a),this.destType=a}var e=a("./GenericWorker"),f=a("../utils");f.inherits(d,e),d.prototype.processChunk=function(a){this.push({data:f.transformTo(this.destType,a.data),meta:a.meta})},b.exports=d},{"../utils":32,"./GenericWorker":28}],25:[function(a,b,c){"use strict";function d(){e.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}var e=a("./GenericWorker"),f=a("../crc32"),g=a("../utils");g.inherits(d,e),d.prototype.processChunk=function(a){this.streamInfo.crc32=f(a.data,this.streamInfo.crc32||0),this.push(a)},b.exports=d},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(a,b,c){"use strict";function d(a){f.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}var e=a("../utils"),f=a("./GenericWorker");e.inherits(d,f),d.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}f.prototype.processChunk.call(this,a)},b.exports=d},{"../utils":32,"./GenericWorker":28}],27:[function(a,b,c){"use strict";function d(a){f.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=e.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}var e=a("../utils"),f=a("./GenericWorker"),g=16384;e.inherits(d,f),d.prototype.cleanUp=function(){f.prototype.cleanUp.call(this),this.data=null},d.prototype.resume=function(){return!!f.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,e.delay(this._tickAndRepeat,[],this)),!0)},d.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(e.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},d.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=g,b=null,c=Math.min(this.max,this.index+a);if(this.index>=this.max)return this.end();switch(this.type){case"string":b=this.data.substring(this.index,c);break;case"uint8array":b=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":b=this.data.slice(this.index,c)}return this.index=c,this.push({data:b,meta:{percent:this.max?this.index/this.max*100:0}})},b.exports=d},{"../utils":32,"./GenericWorker":28}],28:[function(a,b,c){"use strict";function d(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}d.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)this.extraStreamInfo.hasOwnProperty(a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},b.exports=d},{}],29:[function(a,b,c){"use strict";function d(a,b,c){switch(a){case"blob":return h.newBlob(h.transformTo("arraybuffer",b),c);case"base64":return k.encode(b);default:return h.transformTo(a,b)}}function e(a,b){var c,d=0,e=null,f=0;for(c=0;c<b.length;c++)f+=b[c].length;switch(a){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(e=new Uint8Array(f),c=0;c<b.length;c++)e.set(b[c],d),d+=b[c].length;return e;case"nodebuffer":return Buffer.concat(b);default:throw new Error("concat : unsupported type '"+a+"'")}}function f(a,b){return new m.Promise(function(c,f){var g=[],h=a._internalType,i=a._outputType,j=a._mimeType;a.on("data",function(a,c){g.push(a),b&&b(c)}).on("error",function(a){g=[],f(a)}).on("end",function(){try{var a=d(i,e(h,g),j);c(a)}catch(b){f(b)}g=[]}).resume()})}function g(a,b,c){var d=b;switch(b){case"blob":case"arraybuffer":d="uint8array";break;case"base64":d="string"}try{this._internalType=d,this._outputType=b,this._mimeType=c,h.checkSupport(d),this._worker=a.pipe(new i(d)),a.lock()}catch(e){this._worker=new j("error"),this._worker.error(e)}}var h=a("../utils"),i=a("./ConvertWorker"),j=a("./GenericWorker"),k=a("../base64"),l=a("../support"),m=a("../external"),n=null;if(l.nodestream)try{n=a("../nodejs/NodejsStreamOutputAdapter")}catch(o){}g.prototype={accumulate:function(a){return f(this,a)},on:function(a,b){var c=this;return"data"===a?this._worker.on(a,function(a){b.call(c,a.data,a.meta)}):this._worker.on(a,function(){h.delay(b,arguments,c)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(a){if(h.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new n(this,{objectMode:"nodebuffer"!==this._outputType},a)}},b.exports=g},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(a,b,c){"use strict";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,c.nodebuffer="undefined"!=typeof Buffer,c.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)c.blob=!1;else{var d=new ArrayBuffer(0);try{c.blob=0===new Blob([d],{type:"application/zip"}).size}catch(e){try{var f=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,g=new f;g.append(d),c.blob=0===g.getBlob("application/zip").size}catch(e){c.blob=!1}}}try{c.nodestream=!!a("readable-stream").Readable}catch(e){c.nodestream=!1}},{"readable-stream":16}],31:[function(a,b,c){"use strict";function d(){i.call(this,"utf-8 decode"),this.leftOver=null}function e(){i.call(this,"utf-8 encode")}for(var f=a("./utils"),g=a("./support"),h=a("./nodejsUtils"),i=a("./stream/GenericWorker"),j=new Array(256),k=0;k<256;k++)j[k]=k>=252?6:k>=248?5:k>=240?4:k>=224?3:k>=192?2:1;j[254]=j[254]=1;var l=function(a){var b,c,d,e,f,h=a.length,i=0;for(e=0;e<h;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=g.uint8array?new Uint8Array(i):new Array(i),f=0,e=0;f<i;e++)c=a.charCodeAt(e),55296===(64512&c)&&e+1<h&&(d=a.charCodeAt(e+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),e++)),c<128?b[f++]=c:c<2048?(b[f++]=192|c>>>6,b[f++]=128|63&c):c<65536?(b[f++]=224|c>>>12,b[f++]=128|c>>>6&63,b[f++]=128|63&c):(b[f++]=240|c>>>18,b[f++]=128|c>>>12&63,b[f++]=128|c>>>6&63,b[f++]=128|63&c);return b},m=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+j[a[c]]>b?c:b},n=function(a){var b,c,d,e,g=a.length,h=new Array(2*g);for(c=0,b=0;b<g;)if(d=a[b++],d<128)h[c++]=d;else if(e=j[d],e>4)h[c++]=65533,b+=e-1;else{for(d&=2===e?31:3===e?15:7;e>1&&b<g;)d=d<<6|63&a[b++],e--;e>1?h[c++]=65533:d<65536?h[c++]=d:(d-=65536,h[c++]=55296|d>>10&1023,h[c++]=56320|1023&d)}return h.length!==c&&(h.subarray?h=h.subarray(0,c):h.length=c),f.applyFromCharCode(h)};c.utf8encode=function(a){return g.nodebuffer?h.newBufferFrom(a,"utf-8"):l(a)},c.utf8decode=function(a){return g.nodebuffer?f.transformTo("nodebuffer",a).toString("utf-8"):(a=f.transformTo(g.uint8array?"uint8array":"array",a),n(a))},f.inherits(d,i),d.prototype.processChunk=function(a){var b=f.transformTo(g.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(g.uint8array){var d=b;b=new Uint8Array(d.length+this.leftOver.length),b.set(this.leftOver,0),b.set(d,this.leftOver.length)}else b=this.leftOver.concat(b);this.leftOver=null}var e=m(b),h=b;e!==b.length&&(g.uint8array?(h=b.subarray(0,e),this.leftOver=b.subarray(e,b.length)):(h=b.slice(0,e),this.leftOver=b.slice(e,b.length))),this.push({data:c.utf8decode(h),meta:a.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:c.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},c.Utf8DecodeWorker=d,f.inherits(e,i),e.prototype.processChunk=function(a){this.push({data:c.utf8encode(a.data),meta:a.meta})},c.Utf8EncodeWorker=e},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(a,b,c){"use strict";function d(a){var b=null;return b=i.uint8array?new Uint8Array(a.length):new Array(a.length),f(a,b)}function e(a){return a}function f(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function g(a){var b=65536,d=c.getTypeOf(a),e=!0;if("uint8array"===d?e=n.applyCanBeUsed.uint8array:"nodebuffer"===d&&(e=n.applyCanBeUsed.nodebuffer),e)for(;b>1;)try{return n.stringifyByChunk(a,d,b)}catch(f){b=Math.floor(b/2)}return n.stringifyByChar(a)}function h(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];
+return b}var i=a("./support"),j=a("./base64"),k=a("./nodejsUtils"),l=a("core-js/library/fn/set-immediate"),m=a("./external");c.newBlob=function(a,b){c.checkSupport("blob");try{return new Blob([a],{type:b})}catch(d){try{var e=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,f=new e;return f.append(a),f.getBlob(b)}catch(d){throw new Error("Bug : can't construct the Blob.")}}};var n={stringifyByChunk:function(a,b,c){var d=[],e=0,f=a.length;if(f<=c)return String.fromCharCode.apply(null,a);for(;e<f;)"array"===b||"nodebuffer"===b?d.push(String.fromCharCode.apply(null,a.slice(e,Math.min(e+c,f)))):d.push(String.fromCharCode.apply(null,a.subarray(e,Math.min(e+c,f)))),e+=c;return d.join("")},stringifyByChar:function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return b},applyCanBeUsed:{uint8array:function(){try{return i.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(a){return!1}}(),nodebuffer:function(){try{return i.nodebuffer&&1===String.fromCharCode.apply(null,k.allocBuffer(1)).length}catch(a){return!1}}()}};c.applyFromCharCode=g;var o={};o.string={string:e,array:function(a){return f(a,new Array(a.length))},arraybuffer:function(a){return o.string.uint8array(a).buffer},uint8array:function(a){return f(a,new Uint8Array(a.length))},nodebuffer:function(a){return f(a,k.allocBuffer(a.length))}},o.array={string:g,array:e,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(a)}},o.arraybuffer={string:function(a){return g(new Uint8Array(a))},array:function(a){return h(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:e,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return k.newBufferFrom(new Uint8Array(a))}},o.uint8array={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:e,nodebuffer:function(a){return k.newBufferFrom(a)}},o.nodebuffer={string:g,array:function(a){return h(a,new Array(a.length))},arraybuffer:function(a){return o.nodebuffer.uint8array(a).buffer},uint8array:function(a){return h(a,new Uint8Array(a.length))},nodebuffer:e},c.transformTo=function(a,b){if(b||(b=""),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=o[d][a](b);return e},c.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":i.nodebuffer&&k.isBuffer(a)?"nodebuffer":i.uint8array&&a instanceof Uint8Array?"uint8array":i.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":void 0},c.checkSupport=function(a){var b=i[a.toLowerCase()];if(!b)throw new Error(a+" is not supported by this platform")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d="";for(c=0;c<(a||"").length;c++)b=a.charCodeAt(c),d+="\\x"+(b<16?"0":"")+b.toString(16).toUpperCase();return d},c.delay=function(a,b,c){l(function(){a.apply(c||null,b||[])})},c.inherits=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c},c.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&"undefined"==typeof c[b]&&(c[b]=arguments[a][b]);return c},c.prepareContent=function(a,b,e,f,g){var h=m.Promise.resolve(b).then(function(a){var b=i.blob&&(a instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(a))!==-1);return b&&"undefined"!=typeof FileReader?new m.Promise(function(b,c){var d=new FileReader;d.onload=function(a){b(a.target.result)},d.onerror=function(a){c(a.target.error)},d.readAsArrayBuffer(a)}):a});return h.then(function(b){var h=c.getTypeOf(b);return h?("arraybuffer"===h?b=c.transformTo("uint8array",b):"string"===h&&(g?b=j.decode(b):e&&f!==!0&&(b=d(b))),b):m.Promise.reject(new Error("Can't read the data of '"+a+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(a,b,c){"use strict";function d(a){this.files=[],this.loadOptions=a}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./signature"),h=a("./zipEntry"),i=(a("./utf8"),a("./support"));d.prototype={checkSignature:function(a){if(!this.reader.readAndCheckSignature(a)){this.reader.index-=4;var b=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+f.pretty(b)+", expected "+f.pretty(a)+")")}},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4),e=d===b;return this.reader.setIndex(c),e},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=i.uint8array?"uint8array":"array",c=f.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;e<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readData(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(g.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(g.CENTRAL_FILE_HEADER);)a=new h({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(g.CENTRAL_DIRECTORY_END);if(a<0){var b=!this.isSignature(0,g.LOCAL_FILE_HEADER);throw b?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(a);var c=a;if(this.checkSignature(g.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===f.MAX_VALUE_16BITS||this.diskWithCentralDirStart===f.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===f.MAX_VALUE_16BITS||this.centralDirRecords===f.MAX_VALUE_16BITS||this.centralDirSize===f.MAX_VALUE_32BITS||this.centralDirOffset===f.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),a<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(a),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,g.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(g.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,g.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error("Corrupted zip: missing "+Math.abs(e)+" bytes.")},prepareReader:function(a){this.reader=e(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(a,b,c){"use strict";function d(a,b){this.options=a,this.loadOptions=b}var e=a("./reader/readerFor"),f=a("./utils"),g=a("./compressedObject"),h=a("./crc32"),i=a("./utf8"),j=a("./compressions"),k=a("./support"),l=0,m=3,n=function(a){for(var b in j)if(j.hasOwnProperty(b)&&j[b].magic===a)return j[b];return null};d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(b=n(this.compressionMethod),null===b)throw new Error("Corrupted zip : compression "+f.pretty(this.compressionMethod)+" unknown (inner file : "+f.transformTo("string",this.fileName)+")");this.decompressed=new g(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===l&&(this.dosPermissions=63&this.externalFileAttributes),a===m&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.index<e;)b=a.readInt(2),c=a.readInt(2),d=a.readData(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){var a=k.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=i.utf8decode(this.fileName),this.fileCommentStr=i.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=f.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var e=f.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(e)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileName)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=e(a.value);return 1!==b.readInt(1)?null:h(this.fileComment)!==b.readInt(4)?null:i.utf8decode(b.readData(a.length-5))}return null}},b.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(a,b,c){"use strict";var d=a("./stream/StreamHelper"),e=a("./stream/DataWorker"),f=a("./utf8"),g=a("./compressedObject"),h=a("./stream/GenericWorker"),i=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this._dataBinary=c.binary,this.options={compression:c.compression,compressionOptions:c.compressionOptions}};i.prototype={internalStream:function(a){var b=null,c="string";try{if(!a)throw new Error("No output type specified.");c=a.toLowerCase();var e="string"===c||"text"===c;"binarystring"!==c&&"text"!==c||(c="string"),b=this._decompressWorker();var g=!this._dataBinary;g&&!e&&(b=b.pipe(new f.Utf8EncodeWorker)),!g&&e&&(b=b.pipe(new f.Utf8DecodeWorker))}catch(i){b=new h("error"),b.error(i)}return new d(b,c,"")},async:function(a,b){return this.internalStream(a).accumulate(b)},nodeStream:function(a,b){return this.internalStream(a||"nodebuffer").toNodejsStream(b)},_compressWorker:function(a,b){if(this._data instanceof g&&this._data.compression.magic===a.magic)return this._data.getCompressedWorker();var c=this._decompressWorker();return this._dataBinary||(c=c.pipe(new f.Utf8EncodeWorker)),g.createWorkerFrom(c,a,b)},_decompressWorker:function(){return this._data instanceof g?this._data.getContentWorker():this._data instanceof h?this._data:new e(this._data)}};for(var j=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],k=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<j.length;l++)i.prototype[j[l]]=k;b.exports=i},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(a,b,c){a("../modules/web.immediate"),b.exports=a("../modules/_core").setImmediate},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(a,b,c){b.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},{}],38:[function(a,b,c){var d=a("./_is-object");b.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},{"./_is-object":51}],39:[function(a,b,c){var d={}.toString;b.exports=function(a){return d.call(a).slice(8,-1)}},{}],40:[function(a,b,c){var d=b.exports={version:"2.3.0"};"number"==typeof __e&&(__e=d)},{}],41:[function(a,b,c){var d=a("./_a-function");b.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},{"./_a-function":37}],42:[function(a,b,c){b.exports=!a("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":45}],43:[function(a,b,c){var d=a("./_is-object"),e=a("./_global").document,f=d(e)&&d(e.createElement);b.exports=function(a){return f?e.createElement(a):{}}},{"./_global":46,"./_is-object":51}],44:[function(a,b,c){var d=a("./_global"),e=a("./_core"),f=a("./_ctx"),g=a("./_hide"),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];n&&(c=b);for(j in c)k=!m&&u&&void 0!==u[j],k&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,b.exports=i},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(a,b,c){b.exports=function(a){try{return!!a()}catch(b){return!0}}},{}],46:[function(a,b,c){var d=b.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=d)},{}],47:[function(a,b,c){var d=a("./_object-dp"),e=a("./_property-desc");b.exports=a("./_descriptors")?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(a,b,c){b.exports=a("./_global").document&&document.documentElement},{"./_global":46}],49:[function(a,b,c){b.exports=!a("./_descriptors")&&!a("./_fails")(function(){return 7!=Object.defineProperty(a("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(a,b,c){b.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},{}],51:[function(a,b,c){b.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},{}],52:[function(a,b,c){var d=a("./_an-object"),e=a("./_ie8-dom-define"),f=a("./_to-primitive"),g=Object.defineProperty;c.f=a("./_descriptors")?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(h){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(a,b,c){b.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},{}],54:[function(a,b,c){var d,e,f,g=a("./_ctx"),h=a("./_invoke"),i=a("./_html"),j=a("./_dom-create"),k=a("./_global"),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==a("./_cof")(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(e=new o,f=e.port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),b.exports={set:m,clear:n}},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(a,b,c){var d=a("./_is-object");b.exports=function(a,b){if(!d(a))return a;var c,e;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;if("function"==typeof(c=a.valueOf)&&!d(e=c.call(a)))return e;if(!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":51}],56:[function(a,b,c){var d=a("./_export"),e=a("./_task");d(d.G+d.B,{setImmediate:e.set,clearImmediate:e.clear})},{"./_export":44,"./_task":54}],57:[function(a,b,c){(function(a){"use strict";function c(){k=!0;for(var a,b,c=l.length;c;){for(b=l,l=[],a=-1;++a<c;)b[a]();c=l.length}k=!1}function d(a){1!==l.push(a)||k||e()}var e,f=a.MutationObserver||a.WebKitMutationObserver;if(f){var g=0,h=new f(c),i=a.document.createTextNode("");h.observe(i,{characterData:!0}),e=function(){i.data=g=++g%2}}else if(a.setImmediate||"undefined"==typeof a.MessageChannel)e="document"in a&&"onreadystatechange"in a.document.createElement("script")?function(){var b=a.document.createElement("script");b.onreadystatechange=function(){c(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},a.document.documentElement.appendChild(b)}:function(){setTimeout(c,0)};else{var j=new a.MessageChannel;j.port1.onmessage=c,e=function(){j.port2.postMessage(0)}}var k,l=[];b.exports=d}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],58:[function(a,b,c){"use strict";function d(){}function e(a){if("function"!=typeof a)throw new TypeError("resolver must be a function");this.state=s,this.queue=[],this.outcome=void 0,a!==d&&i(this,a)}function f(a,b,c){this.promise=a,"function"==typeof b&&(this.onFulfilled=b,this.callFulfilled=this.otherCallFulfilled),"function"==typeof c&&(this.onRejected=c,this.callRejected=this.otherCallRejected)}function g(a,b,c){o(function(){var d;try{d=b(c)}catch(e){return p.reject(a,e)}d===a?p.reject(a,new TypeError("Cannot resolve promise with itself")):p.resolve(a,d)})}function h(a){var b=a&&a.then;if(a&&("object"==typeof a||"function"==typeof a)&&"function"==typeof b)return function(){b.apply(a,arguments)}}function i(a,b){function c(b){f||(f=!0,p.reject(a,b))}function d(b){f||(f=!0,p.resolve(a,b))}function e(){b(d,c)}var f=!1,g=j(e);"error"===g.status&&c(g.value)}function j(a,b){var c={};try{c.value=a(b),c.status="success"}catch(d){c.status="error",c.value=d}return c}function k(a){return a instanceof this?a:p.resolve(new this(d),a)}function l(a){var b=new this(d);return p.reject(b,a)}function m(a){function b(a,b){function d(a){g[b]=a,++h!==e||f||(f=!0,p.resolve(j,g))}c.resolve(a).then(d,function(a){f||(f=!0,p.reject(j,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=new Array(e),h=0,i=-1,j=new this(d);++i<e;)b(a[i],i);return j}function n(a){function b(a){c.resolve(a).then(function(a){f||(f=!0,p.resolve(h,a))},function(a){f||(f=!0,p.reject(h,a))})}var c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(new TypeError("must be an array"));var e=a.length,f=!1;if(!e)return this.resolve([]);for(var g=-1,h=new this(d);++g<e;)b(a[g]);return h}var o=a("immediate"),p={},q=["REJECTED"],r=["FULFILLED"],s=["PENDING"];b.exports=e,e.prototype["catch"]=function(a){return this.then(null,a)},e.prototype.then=function(a,b){if("function"!=typeof a&&this.state===r||"function"!=typeof b&&this.state===q)return this;var c=new this.constructor(d);if(this.state!==s){var e=this.state===r?a:b;g(c,e,this.outcome)}else this.queue.push(new f(c,a,b));return c},f.prototype.callFulfilled=function(a){p.resolve(this.promise,a)},f.prototype.otherCallFulfilled=function(a){g(this.promise,this.onFulfilled,a)},f.prototype.callRejected=function(a){p.reject(this.promise,a)},f.prototype.otherCallRejected=function(a){g(this.promise,this.onRejected,a)},p.resolve=function(a,b){var c=j(h,b);if("error"===c.status)return p.reject(a,c.value);var d=c.value;if(d)i(a,d);else{a.state=r,a.outcome=b;for(var e=-1,f=a.queue.length;++e<f;)a.queue[e].callFulfilled(b)}return a},p.reject=function(a,b){a.state=q,a.outcome=b;for(var c=-1,d=a.queue.length;++c<d;)a.queue[c].callRejected(b);return a},e.resolve=k,e.reject=l,e.all=m,e.race=n},{immediate:57}],59:[function(a,b,c){"use strict";var d=a("./lib/utils/common").assign,e=a("./lib/deflate"),f=a("./lib/inflate"),g=a("./lib/zlib/constants"),h={};d(h,e,f,g),b.exports=h},{"./lib/deflate":60,"./lib/inflate":61,"./lib/utils/common":62,"./lib/zlib/constants":65}],60:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:""},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e="string"==typeof b.dictionary?j.string2buf(b.dictionary):"[object ArrayBuffer]"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a("./zlib/deflate"),i=a("./utils/common"),j=a("./utils/strings"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,"string"==typeof a?e.input=j.string2buf(a):"[object ArrayBuffer]"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||("string"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{"./utils/common":62,"./utils/strings":63,"./zlib/deflate":67,"./zlib/messages":72,"./zlib/zstream":74}],61:[function(a,b,c){"use strict";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg||k[c.err];return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a("./zlib/inflate"),h=a("./utils/common"),i=a("./utils/strings"),j=a("./zlib/constants"),k=a("./zlib/messages"),l=a("./zlib/zstream"),m=a("./zlib/gzheader"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,"string"==typeof a?m.input=i.binstring2buf(a):"[object ArrayBuffer]"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l="string"==typeof p?i.string2buf(p):"[object ArrayBuffer]"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||("string"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{"./utils/common":62,"./utils/strings":63,"./zlib/constants":65,"./zlib/gzheader":68,"./zlib/inflate":70,"./zlib/messages":72,"./zlib/zstream":74}],62:[function(a,b,c){"use strict";var d="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],63:[function(a,b,c){"use strict";function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c="",d=0;d<b;d++)c+=String.fromCharCode(a[d]);return c}var e=a("./common"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;j<256;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new e.Buf8(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c<d;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;c<h;)if(f=a[c++],f<128)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c<h;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{"./common":62}],64:[function(a,b,c){"use strict";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0;
+}b.exports=d},{}],65:[function(a,b,c){"use strict";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],66:[function(a,b,c){"use strict";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],67:[function(a,b,c){"use strict";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ja-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ja)););}while(a.lookahead<la&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c)),a.match_length>=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ja-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===U||a.match_length===ja&&a.strstart-a.match_start>4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ja-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return ua}else if(a.match_available){if(d=F._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return ua}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=F._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a),a.lookahead<=ka&&b===J)return ua;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&e<f);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ja-1)/ja),i.window=new E.Buf8(2*i.w_size),i.head=new E.Buf16(i.hash_size),i.prev=new E.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new E.Buf8(i.pending_buf_size),i.d_buf=1*i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+ja-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--e);c.strstart=d,c.lookahead=ja-1,m(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=ja-1,c.match_available=0,a.next_in=i,a.input=j,a.avail_in=h,c.wrap=g,O}var D,E=a("../utils/common"),F=a("./trees"),G=a("./adler32"),H=a("./crc32"),I=a("./messages"),J=0,K=1,L=3,M=4,N=5,O=0,P=1,Q=-2,R=-3,S=-5,T=-1,U=1,V=2,W=3,X=4,Y=0,Z=2,$=8,_=9,aa=15,ba=8,ca=29,da=256,ea=da+1+ca,fa=30,ga=19,ha=2*ea+1,ia=15,ja=3,ka=258,la=ka+ja+1,ma=32,na=42,oa=69,pa=73,qa=91,ra=103,sa=113,ta=666,ua=1,va=2,wa=3,xa=4,ya=3;D=[new s(0,0,0,0,n),new s(4,4,8,4,o),new s(4,5,16,8,o),new s(4,6,32,32,o),new s(4,4,16,16,p),new s(8,16,32,32,p),new s(8,16,128,128,p),new s(8,32,128,256,p),new s(32,128,258,1024,p),new s(32,258,258,4096,p)],c.deflateInit=z,c.deflateInit2=y,c.deflateReset=w,c.deflateResetKeep=v,c.deflateSetHeader=x,c.deflate=A,c.deflateEnd=B,c.deflateSetDictionary=C,c.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./messages":72,"./trees":73}],68:[function(a,b,c){"use strict";function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}b.exports=d},{}],69:[function(a,b,c){"use strict";var d=30,e=12;b.exports=function(a,b){var c,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;c=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=c.dmax,l=c.wsize,m=c.whave,n=c.wnext,o=c.window,p=c.hold,q=c.bits,r=c.lencode,s=c.distcode,t=(1<<c.lenbits)-1,u=(1<<c.distbits)-1;a:do{q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){c.mode=e;break a}a.msg="invalid literal/length code",c.mode=d;break a}x=65535&v,w&=15,w&&(q<w&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",c.mode=d;break a}if(y=65535&v,w&=15,q<w&&(p+=B[f++]<<q,q+=8,q<w&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(n<w){if(z+=l+n-w,w-=n,w<x){x-=w;do C[h++]=o[z++];while(--w);if(z=0,n<x){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f<g&&h<j);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=f<g?5+(g-f):5-(f-g),a.avail_out=h<j?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],70:[function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new s.Buf8(f.wsize)),d>=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new s.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return G;c=a.state,c.mode===W&&(c.mode=X),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=D;a:for(;;)switch(c.mode){case L:if(0===c.wrap){c.mode=X;break}for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?U:W,m=0,n=0;break;case M:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==K){a.msg="unknown compression method",c.mode=ma;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=ma;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=ma;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=V;case V:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,F;a.adler=c.check=1,c.mode=W;case W:if(b===B||b===C)break a;case X:if(c.last){m>>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.ncode;){for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(sa<16)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?u(c.check,f,p,h-p):t(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=ma;break}m=0,n=0}c.mode=ka;case ka:if(c.wrap&&c.flags){for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=ma;break}m=0,n=0}c.mode=la;case la:xa=E;break a;case ma:xa=H;break a;case na:return I;case oa:default:return G}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<ma&&(c.mode<ja||b!==A))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=na,I):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?u(c.check,f,p,a.next_out-p):t(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===W?128:0)+(c.mode===ca||c.mode===Z?256:0),(0===o&&0===p||b===A)&&xa===D&&(xa=J),xa)}function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b.window=null),a.state=null,D}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.head=b,b.done=!1,D)):G}function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c.wrap&&c.mode!==V?G:c.mode===V&&(d=1,d=t(d,b,f,0),d!==c.check)?H:(e=l(a,b,f,f))?(c.mode=na,I):(c.havedict=1,D)):G}var q,r,s=a("../utils/common"),t=a("./adler32"),u=a("./crc32"),v=a("./inffast"),w=a("./inftrees"),x=0,y=1,z=2,A=4,B=5,C=6,D=0,E=1,F=2,G=-2,H=-3,I=-4,J=-5,K=8,L=1,M=2,N=3,O=4,P=5,Q=6,R=7,S=8,T=9,U=10,V=11,W=12,X=13,Y=14,Z=15,$=16,_=17,aa=18,ba=19,ca=20,da=21,ea=22,fa=23,ga=24,ha=25,ia=26,ja=27,ka=28,la=29,ma=30,na=31,oa=32,pa=852,qa=592,ra=15,sa=ra,ta=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateSetDictionary=p,c.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":62,"./adler32":64,"./crc32":66,"./inffast":69,"./inftrees":71}],71:[function(a,b,c){"use strict";var d=a("../utils/common"),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;D<=e;D++)P[D]=0;for(E=0;E<o;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F<G&&0===P[F];F++);for(H<F&&(H=F),K=1,D=1;D<=e;D++)if(K<<=1,K-=P[D],K<0)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D<e;D++)Q[D+1]=Q[D]+P[D];for(E=0;E<o;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(;;){z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;I+J<G&&(K-=P[I+J],!(K<=0));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":62}],72:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],73:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi_buf),a.bi_buf=b>>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function j(a,b,c){i(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,
+c=a.heap_max+1;c<V;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka[d]=c,a=0;a<1<<ba[d];a++)ja[c++]=d;for(ja[c-1]=d,f=0,d=0;d<16;d++)for(la[d]=f,a=0;a<1<<ca[d];a++)ia[f++]=d;for(f>>=7;d<T;d++)for(la[d]=f<<7,a=0;a<1<<ca[d]-7;a++)ia[256+f++]=d;for(b=0;b<=W;b++)g[b]=0;for(a=0;a<=143;)ga[2*a+1]=8,a++,g[8]++;for(;a<=255;)ga[2*a+1]=9,a++,g[9]++;for(;a<=279;)ga[2*a+1]=7,a++,g[7]++;for(;a<=287;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;a<T;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a.dyn_dtree[2*b]=0;for(b=0;b<U;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&s(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!s(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],e=a.pending_buf[a.l_buf+k],k++,0===d?j(a,e,b):(f=ja[e],j(a,f+R+1,b),h=ba[f],0!==h&&(e-=ka[f],i(a,e,h)),d--,f=g(d),j(a,f,c),h=ca[f],0!==h&&(d-=la[f],i(a,d,h)));while(k<a.last_lit);j(a,Z,b)}function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=V,c=0;c<i;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=j<2?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):h<=10?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;d<=c;d++)if(e=g,g=b[2*(d+1)+1],!(++h<k&&e===g)){if(h<l){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):h<=10?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b<R;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":62}],74:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)});
\ No newline at end of file
diff --git a/apidocs/2.1.6/member-search-index.js b/apidocs/2.1.6/member-search-index.js
new file mode 100644
index 0000000..c40b441
--- /dev/null
+++ b/apidocs/2.1.6/member-search-index.js
@@ -0,0 +1 @@
+memberSearchIndex = [{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"abortWith(Response)","url":"abortWith(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"abortWith(Response)","url":"abortWith(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"AbstractMultivaluedMap(Map<K, List<V>>)","url":"%3Cinit%3E(java.util.Map)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"ACCEPT"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_CHARSET"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_ENCODING"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"ACCEPT_LANGUAGE"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"accept(MediaType...)","url":"accept(javax.ws.rs.core.MediaType...)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"accept(String...)","url":"accept(java.lang.String...)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"ACCEPTED"},{"p":"javax.ws.rs.core","c":"Response","l":"accepted()"},{"p":"javax.ws.rs.core","c":"Response","l":"accepted(Object)","url":"accepted(java.lang.Object)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"acceptEncoding(String...)","url":"acceptEncoding(java.lang.String...)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"acceptLanguage(Locale...)","url":"acceptLanguage(java.util.Locale...)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"acceptLanguage(String...)","url":"acceptLanguage(java.lang.String...)"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"add()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"add(K, V)","url":"add(K,V)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"add(K, V)","url":"add(K,V)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"addAll(K, List<V>)","url":"addAll(K,java.util.List)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"addAll(K, List<V>)","url":"addAll(K,java.util.List)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"addAll(K, V...)","url":"addAll(K,V...)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"addAll(K, V...)","url":"addAll(K,V...)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"addFirst(K, V)","url":"addFirst(K,V)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"addFirst(K, V)","url":"addFirst(K,V)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"addFirstNull(List<V>)","url":"addFirstNull(java.util.List)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"addNull(List<V>)","url":"addNull(java.util.List)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"ALLOW"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"allow(Set<String>)","url":"allow(java.util.Set)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"allow(String...)","url":"allow(java.lang.String...)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_ATOM_XML"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_ATOM_XML_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_FORM_URLENCODED"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_FORM_URLENCODED_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_PATCH_JSON"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_PATCH_JSON_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_JSON_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_OCTET_STREAM"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_OCTET_STREAM_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_SVG_XML"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_SVG_XML_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_XHTML_XML"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_XHTML_XML_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_XML"},{"p":"javax.ws.rs.core","c":"MediaType","l":"APPLICATION_XML_TYPE"},{"p":"javax.ws.rs.core","c":"Application","l":"Application()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.ext","c":"ReaderInterceptor","l":"aroundReadFrom(ReaderInterceptorContext)","url":"aroundReadFrom(javax.ws.rs.ext.ReaderInterceptorContext)"},{"p":"javax.ws.rs.ext","c":"WriterInterceptor","l":"aroundWriteTo(WriterInterceptorContext)","url":"aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext)"},{"p":"javax.ws.rs.core","c":"Form","l":"asMap()"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"async()"},{"p":"javax.ws.rs","c":"Priorities","l":"AUTHENTICATION"},{"p":"javax.ws.rs","c":"Priorities","l":"AUTHORIZATION"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"AUTHORIZATION"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"BAD_GATEWAY"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"BAD_REQUEST"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"BadRequestException","l":"BadRequestException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"baseUri(String)","url":"baseUri(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"baseUri(URI)","url":"baseUri(java.net.URI)"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"BASIC_AUTH"},{"p":"javax.ws.rs.sse","c":"SseBroadcaster","l":"broadcast(OutboundSseEvent)","url":"broadcast(javax.ws.rs.sse.OutboundSseEvent)"},{"p":"javax.ws.rs.core","c":"Response","l":"bufferEntity()"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"build()"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"build()"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"build()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"build()"},{"p":"javax.ws.rs.sse","c":"SseEventSource.Builder","l":"build()"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"build(Object...)","url":"build(java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"build(Object...)","url":"build(java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"build(Object[], boolean)","url":"build(java.lang.Object[],boolean)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"build(String)","url":"build(java.lang.String)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"build(String, Entity<?>)","url":"build(java.lang.String,javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"buildDelete()"},{"p":"javax.ws.rs.sse","c":"SseEventSource.Builder","l":"Builder()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"buildFromEncoded(Object...)","url":"buildFromEncoded(java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"buildFromEncodedMap(Map<String, ?>)","url":"buildFromEncodedMap(java.util.Map)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"buildFromMap(Map<String, ?>)","url":"buildFromMap(java.util.Map)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"buildFromMap(Map<String, ?>, boolean)","url":"buildFromMap(java.util.Map,boolean)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"buildGet()"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"buildPost(Entity<?>)","url":"buildPost(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"buildPut(Entity<?>)","url":"buildPut(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"buildRelativized(URI, Object...)","url":"buildRelativized(java.net.URI,java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CACHE_CONTROL"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"CacheControl()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"cacheControl(CacheControl)","url":"cacheControl(javax.ws.rs.core.CacheControl)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"cacheControl(CacheControl)","url":"cacheControl(javax.ws.rs.core.CacheControl)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"cancel()"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"cancel(Date)","url":"cancel(java.util.Date)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"cancel(int)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"CHARSET_PARAMETER"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"clear()"},{"p":"javax.ws.rs","c":"RuntimeType","l":"CLIENT"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"CLIENT_CERT_AUTH"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"CLIENT_ERROR"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"ClientBuilder()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(int)","url":"%3Cinit%3E(int)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(int, Throwable)","url":"%3Cinit%3E(int,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response.Status)","url":"%3Cinit%3E(javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(Response.Status, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, int, Throwable)","url":"%3Cinit%3E(java.lang.String,int,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response.Status)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"ClientErrorException","l":"ClientErrorException(String, Response.Status, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"clone()"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"clone()"},{"p":"javax.ws.rs.client","c":"Client","l":"close()"},{"p":"javax.ws.rs.core","c":"Response","l":"close()"},{"p":"javax.ws.rs.sse","c":"SseBroadcaster","l":"close()"},{"p":"javax.ws.rs.sse","c":"SseEventSink","l":"close()"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"close()"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"close(long, TimeUnit)","url":"close(long,java.util.concurrent.TimeUnit)"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"comment(String)","url":"comment(java.lang.String)"},{"p":"javax.ws.rs.client","c":"InvocationCallback","l":"completed(RESPONSE)"},{"p":"javax.ws.rs.core","c":"Feature","l":"configure(FeatureContext)","url":"configure(javax.ws.rs.core.FeatureContext)"},{"p":"javax.ws.rs.container","c":"DynamicFeature","l":"configure(ResourceInfo, FeatureContext)","url":"configure(javax.ws.rs.container.ResourceInfo,javax.ws.rs.core.FeatureContext)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"CONFLICT"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"connectTimeout(long, TimeUnit)","url":"connectTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"containsKey(Object)","url":"containsKey(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"containsValue(Object)","url":"containsValue(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_DISPOSITION"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_ENCODING"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_ID"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LANGUAGE"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LENGTH"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_LOCATION"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"CONTENT_TYPE"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"contentLocation(URI)","url":"contentLocation(java.net.URI)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"COOKIE"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"cookie(Cookie)","url":"cookie(javax.ws.rs.core.Cookie)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"cookie(NewCookie...)","url":"cookie(javax.ws.rs.core.NewCookie...)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"cookie(String, String)","url":"cookie(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Cookie","l":"Cookie(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Cookie","l":"Cookie(String, String, String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Cookie","l":"Cookie(String, String, String, String, int)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"CREATED"},{"p":"javax.ws.rs.core","c":"Response","l":"created(URI)","url":"created(java.net.URI)"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"createEndpoint(Application, Class<T>)","url":"createEndpoint(javax.ws.rs.core.Application,java.lang.Class)"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"createHeaderDelegate(Class<T>)","url":"createHeaderDelegate(java.lang.Class)"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"createLinkBuilder()"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"createResponseBuilder()"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"createUriBuilder()"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"createVariantListBuilder()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(Class, Object)","url":"data(java.lang.Class,java.lang.Object)"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(GenericType, Object)","url":"data(javax.ws.rs.core.GenericType,java.lang.Object)"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"data(Object)","url":"data(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"DATE"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"DEFAULT_MAX_AGE"},{"p":"javax.ws.rs.core","c":"Cookie","l":"DEFAULT_VERSION"},{"p":"javax.ws.rs","c":"HttpMethod","l":"DELETE"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"delete()"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"delete()"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"delete()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"delete(Class<R>)","url":"delete(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"delete(Class<T>)","url":"delete(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete(Class<T>)","url":"delete(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"delete(Class<T>)","url":"delete(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"delete(GenericType<R>)","url":"delete(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"delete(GenericType<T>)","url":"delete(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"delete(GenericType<T>)","url":"delete(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"delete(GenericType<T>)","url":"delete(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"delete(InvocationCallback<T>)","url":"delete(javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"DIGEST_AUTH"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"encoding(String)","url":"encoding(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Variant","l":"encodings(String...)","url":"encodings(java.lang.String...)"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"encodings(String...)","url":"encodings(java.lang.String...)"},{"p":"javax.ws.rs","c":"Priorities","l":"ENTITY_CODER"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"entity(Object)","url":"entity(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"entity(Object, Annotation[])","url":"entity(java.lang.Object,java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.client","c":"Entity","l":"entity(T, MediaType)","url":"entity(T,javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.client","c":"Entity","l":"entity(T, MediaType, Annotation[])","url":"entity(T,javax.ws.rs.core.MediaType,java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.client","c":"Entity","l":"entity(T, String)","url":"entity(T,java.lang.String)"},{"p":"javax.ws.rs.client","c":"Entity","l":"entity(T, Variant)","url":"entity(T,javax.ws.rs.core.Variant)"},{"p":"javax.ws.rs.client","c":"Entity","l":"entity(T, Variant, Annotation[])","url":"entity(T,javax.ws.rs.core.Variant,java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"EntityTag(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"EntityTag(String, boolean)","url":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"entrySet()"},{"p":"javax.ws.rs.client","c":"Entity","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Cookie","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"GenericType","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Variant","l":"equals(Object)","url":"equals(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap<K, V>)","url":"equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"equalsIgnoreValueOrder(MultivaluedMap<K, V>)","url":"equalsIgnoreValueOrder(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"ETAG"},{"p":"javax.ws.rs.core","c":"Request","l":"evaluatePreconditions()"},{"p":"javax.ws.rs.core","c":"Request","l":"evaluatePreconditions(Date)","url":"evaluatePreconditions(java.util.Date)"},{"p":"javax.ws.rs.core","c":"Request","l":"evaluatePreconditions(Date, EntityTag)","url":"evaluatePreconditions(java.util.Date,javax.ws.rs.core.EntityTag)"},{"p":"javax.ws.rs.core","c":"Request","l":"evaluatePreconditions(EntityTag)","url":"evaluatePreconditions(javax.ws.rs.core.EntityTag)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"executorService(ExecutorService)","url":"executorService(java.util.concurrent.ExecutorService)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"EXPECTATION_FAILED"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"EXPIRES"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"expires(Date)","url":"expires(java.util.Date)"},{"p":"javax.ws.rs.client","c":"InvocationCallback","l":"failed(Throwable)","url":"failed(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"familyOf(int)"},{"p":"javax.ws.rs.client","c":"ClientRequestFilter","l":"filter(ClientRequestContext)","url":"filter(javax.ws.rs.client.ClientRequestContext)"},{"p":"javax.ws.rs.client","c":"ClientResponseFilter","l":"filter(ClientRequestContext, ClientResponseContext)","url":"filter(javax.ws.rs.client.ClientRequestContext,javax.ws.rs.client.ClientResponseContext)"},{"p":"javax.ws.rs.container","c":"ContainerRequestFilter","l":"filter(ContainerRequestContext)","url":"filter(javax.ws.rs.container.ContainerRequestContext)"},{"p":"javax.ws.rs.container","c":"ContainerResponseFilter","l":"filter(ContainerRequestContext, ContainerResponseContext)","url":"filter(javax.ws.rs.container.ContainerRequestContext,javax.ws.rs.container.ContainerResponseContext)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"FORBIDDEN"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ForbiddenException","l":"ForbiddenException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"GenericType","l":"forInstance(Object)","url":"forInstance(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"FORM_AUTH"},{"p":"javax.ws.rs.core","c":"Form","l":"Form()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.client","c":"Entity","l":"form(Form)","url":"form(javax.ws.rs.core.Form)"},{"p":"javax.ws.rs.client","c":"Entity","l":"form(MultivaluedMap<String, String>)","url":"form(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.core","c":"Form","l":"Form(MultivaluedMap<String, String>)","url":"%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.core","c":"Form","l":"Form(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"FOUND"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fragment(String)","url":"fragment(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromLink(Link)","url":"fromLink(javax.ws.rs.core.Link)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fromLink(Link)","url":"fromLink(javax.ws.rs.core.Link)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromMethod(Class<?>, String)","url":"fromMethod(java.lang.Class,java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fromMethod(Class<?>, String)","url":"fromMethod(java.lang.Class,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromPath(String)","url":"fromPath(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fromPath(String)","url":"fromPath(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromResource(Class<?>)","url":"fromResource(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fromResource(Class<?>)","url":"fromResource(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"Response","l":"fromResponse(Response)","url":"fromResponse(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"fromStatusCode(int)"},{"p":"javax.ws.rs.ext","c":"ParamConverter","l":"fromString(String)","url":"fromString(java.lang.String)"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate.HeaderDelegate","l":"fromString(String)","url":"fromString(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromUri(String)","url":"fromUri(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fromUri(String)","url":"fromUri(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromUri(URI)","url":"fromUri(java.net.URI)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"fromUri(URI)","url":"fromUri(java.net.URI)"},{"p":"javax.ws.rs.core","c":"Link","l":"fromUriBuilder(UriBuilder)","url":"fromUriBuilder(javax.ws.rs.core.UriBuilder)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"GATEWAY_TIMEOUT"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"GenericEntity(T)","url":"%3Cinit%3E(T)"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"GenericEntity(T, Type)","url":"%3Cinit%3E(T,java.lang.reflect.Type)"},{"p":"javax.ws.rs.core","c":"GenericType","l":"GenericType()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"GenericType","l":"GenericType(Type)","url":"%3Cinit%3E(java.lang.reflect.Type)"},{"p":"javax.ws.rs","c":"HttpMethod","l":"GET"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"get()"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"get()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"get()"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"get()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"get(Class<R>)","url":"get(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"get(Class<T>)","url":"get(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"get(Class<T>)","url":"get(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"get(Class<T>)","url":"get(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"get(GenericType<R>)","url":"get(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"get(GenericType<T>)","url":"get(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"get(GenericType<T>)","url":"get(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"get(GenericType<T>)","url":"get(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"get(InvocationCallback<T>)","url":"get(javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"get(Object)","url":"get(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getAbsolutePath()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getAbsolutePathBuilder()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getAcceptableLanguages()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getAcceptableLanguages()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getAcceptableLanguages()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getAcceptableMediaTypes()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getAcceptableMediaTypes()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getAcceptableMediaTypes()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getAllowedMethods()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getAllowedMethods()"},{"p":"javax.ws.rs.core","c":"Response","l":"getAllowedMethods()"},{"p":"javax.ws.rs.client","c":"Entity","l":"getAnnotations()"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"getAnnotations()"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"getAuthenticationScheme()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getBaseUri()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getBaseUriBuilder()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"getCacheExtension()"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"getChallenges()"},{"p":"javax.ws.rs.core","c":"Application","l":"getClasses()"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getClasses()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getClient()"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"getComment()"},{"p":"javax.ws.rs.sse","c":"SseEvent","l":"getComment()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getConfiguration()"},{"p":"javax.ws.rs.core","c":"Configurable","l":"getConfiguration()"},{"p":"javax.ws.rs.ext","c":"ContextResolver","l":"getContext(Class<?>)","url":"getContext(java.lang.Class)"},{"p":"javax.ws.rs.ext","c":"Providers","l":"getContextResolver(Class<T>, MediaType)","url":"getContextResolver(java.lang.Class,javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getContracts(Class<?>)","url":"getContracts(java.lang.Class)"},{"p":"javax.ws.rs.ext","c":"ParamConverterProvider","l":"getConverter(Class<T>, Type, Annotation[])","url":"getConverter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getCookies()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getCookies()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getCookies()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getCookies()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getCookies()"},{"p":"javax.ws.rs.core","c":"Response","l":"getCookies()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent","l":"getData()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getDate()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getDate()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getDate()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getDate()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getDate()"},{"p":"javax.ws.rs.core","c":"Response","l":"getDate()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"getDomain()"},{"p":"javax.ws.rs.client","c":"Entity","l":"getEncoding()"},{"p":"javax.ws.rs.core","c":"Variant","l":"getEncoding()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getEntity()"},{"p":"javax.ws.rs.client","c":"Entity","l":"getEntity()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getEntity()"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"getEntity()"},{"p":"javax.ws.rs.core","c":"Response","l":"getEntity()"},{"p":"javax.ws.rs.ext","c":"WriterInterceptorContext","l":"getEntity()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getEntityAnnotations()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getEntityAnnotations()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getEntityClass()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getEntityClass()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getEntityStream()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getEntityStream()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getEntityStream()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getEntityStream()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getEntityTag()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getEntityTag()"},{"p":"javax.ws.rs.core","c":"Response","l":"getEntityTag()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getEntityType()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getEntityType()"},{"p":"javax.ws.rs.ext","c":"Providers","l":"getExceptionMapper(Class<T>)","url":"getExceptionMapper(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"getExpiry()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"getFamily()"},{"p":"javax.ws.rs.core","c":"Response.StatusType","l":"getFamily()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"getFirst(K)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"getFirst(K)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"getGenericType()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent","l":"getGenericType()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getHeaders()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getHeaders()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getHeaders()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getHeaders()"},{"p":"javax.ws.rs.core","c":"Response","l":"getHeaders()"},{"p":"javax.ws.rs.ext","c":"ReaderInterceptorContext","l":"getHeaders()"},{"p":"javax.ws.rs.ext","c":"WriterInterceptorContext","l":"getHeaders()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response","l":"getHeaderString(String)","url":"getHeaderString(java.lang.String)"},{"p":"javax.ws.rs.client","c":"Client","l":"getHostnameVerifier()"},{"p":"javax.ws.rs.sse","c":"SseEvent","l":"getId()"},{"p":"javax.ws.rs.ext","c":"ReaderInterceptorContext","l":"getInputStream()"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"getInstance()"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getInstances()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getLanguage()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLanguage()"},{"p":"javax.ws.rs.client","c":"Entity","l":"getLanguage()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getLanguage()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLanguage()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getLanguage()"},{"p":"javax.ws.rs.core","c":"Response","l":"getLanguage()"},{"p":"javax.ws.rs.core","c":"Variant","l":"getLanguage()"},{"p":"javax.ws.rs.core","c":"Variant","l":"getLanguageString()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLastModified()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLastModified()"},{"p":"javax.ws.rs.core","c":"Response","l":"getLastModified()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLength()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getLength()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLength()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getLength()"},{"p":"javax.ws.rs.core","c":"Response","l":"getLength()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLink(String)","url":"getLink(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLink(String)","url":"getLink(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response","l":"getLink(String)","url":"getLink(java.lang.String)"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLinkBuilder(String)","url":"getLinkBuilder(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLinkBuilder(String)","url":"getLinkBuilder(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response","l":"getLinkBuilder(String)","url":"getLinkBuilder(java.lang.String)"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLinks()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLinks()"},{"p":"javax.ws.rs.core","c":"Response","l":"getLinks()"},{"p":"javax.ws.rs","c":"RedirectionException","l":"getLocation()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getLocation()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getLocation()"},{"p":"javax.ws.rs.core","c":"Response","l":"getLocation()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getMatchedResources()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getMatchedURIs()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getMatchedURIs(boolean)"},{"p":"javax.ws.rs.core","c":"PathSegment","l":"getMatrixParameters()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"getMaxAge()"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"getMaxAge()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getMediaType()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getMediaType()"},{"p":"javax.ws.rs.client","c":"Entity","l":"getMediaType()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getMediaType()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getMediaType()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getMediaType()"},{"p":"javax.ws.rs.core","c":"Response","l":"getMediaType()"},{"p":"javax.ws.rs.core","c":"Variant","l":"getMediaType()"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"getMediaType()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent","l":"getMediaType()"},{"p":"javax.ws.rs.ext","c":"Providers","l":"getMessageBodyReader(Class<T>, Type, Annotation[], MediaType)","url":"getMessageBodyReader(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.ext","c":"Providers","l":"getMessageBodyWriter(Class<T>, Type, Annotation[], MediaType)","url":"getMessageBodyWriter(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"Response","l":"getMetadata()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getMethod()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getMethod()"},{"p":"javax.ws.rs.core","c":"Request","l":"getMethod()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"getName()"},{"p":"javax.ws.rs.sse","c":"SseEvent","l":"getName()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"getNoCacheFields()"},{"p":"javax.ws.rs.ext","c":"WriterInterceptorContext","l":"getOutputStream()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"getParameters()"},{"p":"javax.ws.rs.core","c":"Link","l":"getParams()"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"getParams()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"getPath()"},{"p":"javax.ws.rs.core","c":"PathSegment","l":"getPath()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getPath()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getPath(boolean)"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getPathParameters()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getPathParameters(boolean)"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getPathSegments()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getPathSegments(boolean)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"getPrivateFields()"},{"p":"javax.ws.rs.core","c":"Application","l":"getProperties()"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getProperties()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"getProperty(String)","url":"getProperty(java.lang.String)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getPropertyNames()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getPropertyNames()"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getPropertyNames()"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"getPropertyNames()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getQueryParameters()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getQueryParameters(boolean)"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"getRawType()"},{"p":"javax.ws.rs.core","c":"GenericType","l":"getRawType()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"getReasonPhrase()"},{"p":"javax.ws.rs.core","c":"Response.StatusType","l":"getReasonPhrase()"},{"p":"javax.ws.rs.sse","c":"SseEvent","l":"getReconnectDelay()"},{"p":"javax.ws.rs.core","c":"Link","l":"getRel()"},{"p":"javax.ws.rs.core","c":"Link","l":"getRels()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getRequest()"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getRequestHeader(String)","url":"getRequestHeader(java.lang.String)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"getRequestHeaders()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getRequestUri()"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"getRequestUriBuilder()"},{"p":"javax.ws.rs.container","c":"ResourceContext","l":"getResource(Class<T>)","url":"getResource(java.lang.Class)"},{"p":"javax.ws.rs.container","c":"ResourceInfo","l":"getResourceClass()"},{"p":"javax.ws.rs.container","c":"ResourceInfo","l":"getResourceMethod()"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"getResponse()"},{"p":"javax.ws.rs.client","c":"ResponseProcessingException","l":"getResponse()"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"getRetryTime(Date)","url":"getRetryTime(java.util.Date)"},{"p":"javax.ws.rs.core","c":"Configuration","l":"getRuntimeType()"},{"p":"javax.ws.rs.client","c":"RxInvokerProvider","l":"getRxInvoker(SyncInvoker, ExecutorService)","url":"getRxInvoker(javax.ws.rs.client.SyncInvoker,java.util.concurrent.ExecutorService)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getSecurityContext()"},{"p":"javax.ws.rs.core","c":"Application","l":"getSingletons()"},{"p":"javax.ws.rs.ext","c":"MessageBodyWriter","l":"getSize(T, Class<?>, Type, Annotation[], MediaType)","url":"getSize(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"getSMaxAge()"},{"p":"javax.ws.rs.client","c":"Client","l":"getSslContext()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getStatus()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getStatus()"},{"p":"javax.ws.rs.core","c":"Response","l":"getStatus()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"getStatusCode()"},{"p":"javax.ws.rs.core","c":"Response.StatusType","l":"getStatusCode()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"getStatusInfo()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getStatusInfo()"},{"p":"javax.ws.rs.core","c":"Response","l":"getStatusInfo()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getStringHeaders()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"getStringHeaders()"},{"p":"javax.ws.rs.core","c":"Response","l":"getStringHeaders()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"getSubtype()"},{"p":"javax.ws.rs.core","c":"Link","l":"getTitle()"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"getType()"},{"p":"javax.ws.rs.core","c":"GenericType","l":"getType()"},{"p":"javax.ws.rs.core","c":"Link","l":"getType()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"getType()"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"getType()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent","l":"getType()"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"getUri()"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"getUri()"},{"p":"javax.ws.rs.core","c":"Link","l":"getUri()"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"getUri()"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"getUriBuilder()"},{"p":"javax.ws.rs.core","c":"Link","l":"getUriBuilder()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"getUriInfo()"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"getUserPrincipal()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"getValue()"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"getValue()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"getValues(K)"},{"p":"javax.ws.rs.client","c":"Entity","l":"getVariant()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"getVersion()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"GONE"},{"p":"javax.ws.rs.container","c":"TimeoutHandler","l":"handleTimeout(AsyncResponse)","url":"handleTimeout(javax.ws.rs.container.AsyncResponse)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"hasEntity()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"hasEntity()"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"hasEntity()"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"hasEntity()"},{"p":"javax.ws.rs.core","c":"Response","l":"hasEntity()"},{"p":"javax.ws.rs.client","c":"Entity","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"GenericType","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"hashCode()"},{"p":"javax.ws.rs.core","c":"Variant","l":"hashCode()"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"hasLink(String)","url":"hasLink(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"hasLink(String)","url":"hasLink(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response","l":"hasLink(String)","url":"hasLink(java.lang.String)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"hasRetryAfter()"},{"p":"javax.ws.rs","c":"HttpMethod","l":"HEAD"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"head()"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"head()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"head()"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"head()"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"head(InvocationCallback<Response>)","url":"head(javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs","c":"Priorities","l":"HEADER_DECORATOR"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"header(String, Object)","url":"header(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"header(String, Object)","url":"header(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"headers(MultivaluedMap<String, Object>)","url":"headers(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"HOST"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"host(String)","url":"host(java.lang.String)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"hostnameVerifier(HostnameVerifier)","url":"hostnameVerifier(javax.net.ssl.HostnameVerifier)"},{"p":"javax.ws.rs.client","c":"Entity","l":"html(T)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"HTTP_VERSION_NOT_SUPPORTED"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"id(String)","url":"id(java.lang.String)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"IF_MATCH"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"IF_MODIFIED_SINCE"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"IF_NONE_MATCH"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"IF_UNMODIFIED_SINCE"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"INFORMATIONAL"},{"p":"javax.ws.rs.container","c":"ResourceContext","l":"initResource(T)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"INTERNAL_SERVER_ERROR"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"InternalServerErrorException","l":"InternalServerErrorException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.client","c":"Client","l":"invocation(Link)","url":"invocation(javax.ws.rs.core.Link)"},{"p":"javax.ws.rs.client","c":"Invocation","l":"invoke()"},{"p":"javax.ws.rs.client","c":"Invocation","l":"invoke(Class<T>)","url":"invoke(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"Invocation","l":"invoke(GenericType<T>)","url":"invoke(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"isCancelled()"},{"p":"javax.ws.rs.sse","c":"SseEventSink","l":"isClosed()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"isCompatible(MediaType)","url":"isCompatible(javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"isDone()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"isEmpty()"},{"p":"javax.ws.rs.sse","c":"InboundSseEvent","l":"isEmpty()"},{"p":"javax.ws.rs.core","c":"Configuration","l":"isEnabled(Class<? extends Feature>)","url":"isEnabled(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"Configuration","l":"isEnabled(Feature)","url":"isEnabled(javax.ws.rs.core.Feature)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"isHttpOnly()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"isMustRevalidate()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"isNoCache()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"isNoStore()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"isNoTransform()"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"isOpen()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"isPrivate()"},{"p":"javax.ws.rs.client","c":"RxInvokerProvider","l":"isProviderFor(Class<?>)","url":"isProviderFor(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"isProxyRevalidate()"},{"p":"javax.ws.rs.ext","c":"MessageBodyReader","l":"isReadable(Class<?>, Type, Annotation[], MediaType)","url":"isReadable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.sse","c":"SseEvent","l":"isReconnectDelaySet()"},{"p":"javax.ws.rs.core","c":"Configuration","l":"isRegistered(Class<?>)","url":"isRegistered(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"Configuration","l":"isRegistered(Object)","url":"isRegistered(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"isSecure()"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"isSecure()"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"isSuspended()"},{"p":"javax.ws.rs.core","c":"SecurityContext","l":"isUserInRole(String)","url":"isUserInRole(java.lang.String)"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"isWeak()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"isWildcardSubtype()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"isWildcardType()"},{"p":"javax.ws.rs.ext","c":"MessageBodyWriter","l":"isWriteable(Class<?>, Type, Annotation[], MediaType)","url":"isWriteable(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"Link.JaxbAdapter","l":"JaxbAdapter()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"JaxbLink()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"JaxbLink(URI)","url":"%3Cinit%3E(java.net.URI)"},{"p":"javax.ws.rs.core","c":"Link.JaxbLink","l":"JaxbLink(URI, Map<QName, Object>)","url":"%3Cinit%3E(java.net.URI,java.util.Map)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY"},{"p":"javax.ws.rs.sse","c":"SseEventSource.Builder","l":"JAXRS_DEFAULT_SSE_BUILDER_PROPERTY"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"JAXRS_RUNTIME_DELEGATE_PROPERTY"},{"p":"javax.ws.rs.client","c":"Entity","l":"json(T)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"keySet()"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"keyStore(KeyStore, char[])","url":"keyStore(java.security.KeyStore,char[])"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"keyStore(KeyStore, String)","url":"keyStore(java.security.KeyStore,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"language(Locale)","url":"language(java.util.Locale)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"language(String)","url":"language(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Variant","l":"languages(Locale...)","url":"languages(java.util.Locale...)"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"languages(Locale...)","url":"languages(java.util.Locale...)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"LAST_EVENT_ID_HEADER"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"LAST_MODIFIED"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"lastModified(Date)","url":"lastModified(java.util.Date)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"LENGTH_REQUIRED"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"LINK"},{"p":"javax.ws.rs.core","c":"Link","l":"Link()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"link(Link)","url":"link(javax.ws.rs.core.Link)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"link(String)","url":"link(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"link(String, String)","url":"link(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"link(URI, String)","url":"link(java.net.URI,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"links(Link...)","url":"links(javax.ws.rs.core.Link...)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"LOCATION"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"location(URI)","url":"location(java.net.URI)"},{"p":"javax.ws.rs.core","c":"Link.JaxbAdapter","l":"marshal(Link)","url":"marshal(javax.ws.rs.core.Link)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"matrixParam(String, Object...)","url":"matrixParam(java.lang.String,java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"matrixParam(String, Object...)","url":"matrixParam(java.lang.String,java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MEDIA_TYPE_WILDCARD"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MediaType()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"mediaType(MediaType)","url":"mediaType(javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MediaType(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MediaType(String, String, Map<String, String>)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.Map)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MediaType(String, String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Variant","l":"mediaTypes(MediaType...)","url":"mediaTypes(javax.ws.rs.core.MediaType...)"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"mediaTypes(MediaType...)","url":"mediaTypes(javax.ws.rs.core.MediaType...)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"METHOD_NOT_ALLOWED"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"method(String)","url":"method(java.lang.String)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"method(String, Class<R>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, Class<T>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Class<T>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"method(String, Class<T>)","url":"method(java.lang.String,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity<?>)","url":"method(java.lang.String,javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"method(String, Entity<?>, Class<R>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>, Class<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity<?>, Class<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity<?>, Class<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"method(String, Entity<?>, GenericType<R>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>, GenericType<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, Entity<?>, GenericType<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"method(String, Entity<?>, GenericType<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, Entity<?>, InvocationCallback<T>)","url":"method(java.lang.String,javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"method(String, GenericType<R>)","url":"method(java.lang.String,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, GenericType<T>)","url":"method(java.lang.String,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"method(String, GenericType<T>)","url":"method(java.lang.String,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"method(String, GenericType<T>)","url":"method(java.lang.String,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"method(String, InvocationCallback<T>)","url":"method(java.lang.String,javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"MOVED_PERMANENTLY"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MULTIPART_FORM_DATA"},{"p":"javax.ws.rs.core","c":"MediaType","l":"MULTIPART_FORM_DATA_TYPE"},{"p":"javax.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int)","url":"%3Cinit%3E(int)"},{"p":"javax.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(int, float)","url":"%3Cinit%3E(int,float)"},{"p":"javax.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(Map<? extends K, ? extends V>)","url":"%3Cinit%3E(java.util.Map)"},{"p":"javax.ws.rs.core","c":"MultivaluedHashMap","l":"MultivaluedHashMap(MultivaluedMap<? extends K, ? extends V>)","url":"%3Cinit%3E(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"name(String)","url":"name(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"NETWORK_AUTHENTICATION_REQUIRED"},{"p":"javax.ws.rs.sse","c":"Sse","l":"newBroadcaster()"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"newBuilder()"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"newClient()"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"newClient(Configuration)","url":"newClient(javax.ws.rs.core.Configuration)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie)","url":"%3Cinit%3E(javax.ws.rs.core.Cookie)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, boolean)","url":"%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,boolean)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(Cookie, String, int, Date, boolean, boolean)","url":"%3Cinit%3E(javax.ws.rs.core.Cookie,java.lang.String,int,java.util.Date,boolean,boolean)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,boolean)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, int, String, int, Date, boolean, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,int,java.util.Date,boolean,boolean)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, String, int, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"NewCookie(String, String, String, String, String, int, boolean, boolean)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,boolean,boolean)"},{"p":"javax.ws.rs.sse","c":"Sse","l":"newEvent(String)","url":"newEvent(java.lang.String)"},{"p":"javax.ws.rs.sse","c":"Sse","l":"newEvent(String, String)","url":"newEvent(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.sse","c":"Sse","l":"newEventBuilder()"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"newInstance()"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"newInstance()"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"newInstance()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"NO_CONTENT"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"NO_TIMEOUT"},{"p":"javax.ws.rs.core","c":"Response","l":"noContent()"},{"p":"javax.ws.rs.core","c":"NoContentException","l":"NoContentException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs.core","c":"NoContentException","l":"NoContentException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"NoContentException","l":"NoContentException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"NOT_ACCEPTABLE"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"NOT_FOUND"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"NOT_IMPLEMENTED"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"NOT_MODIFIED"},{"p":"javax.ws.rs.core","c":"Response","l":"notAcceptable(List<Variant>)","url":"notAcceptable(java.util.List)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAcceptableException","l":"NotAcceptableException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, String, String...)","url":"%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String...)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, String...)","url":"%3Cinit%3E(java.lang.String,java.lang.String...)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(String, Throwable, String...)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.String...)"},{"p":"javax.ws.rs","c":"NotAllowedException","l":"NotAllowedException(Throwable, String...)","url":"%3Cinit%3E(java.lang.Throwable,java.lang.String...)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Object, Object...)","url":"%3Cinit%3E(java.lang.Object,java.lang.Object...)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Object, Object...)","url":"%3Cinit%3E(java.lang.String,java.lang.Object,java.lang.Object...)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(String, Throwable, Object, Object...)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,java.lang.Object,java.lang.Object...)"},{"p":"javax.ws.rs","c":"NotAuthorizedException","l":"NotAuthorizedException(Throwable, Object, Object...)","url":"%3Cinit%3E(java.lang.Throwable,java.lang.Object,java.lang.Object...)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotFoundException","l":"NotFoundException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response","l":"notModified()"},{"p":"javax.ws.rs.core","c":"Response","l":"notModified(EntityTag)","url":"notModified(javax.ws.rs.core.EntityTag)"},{"p":"javax.ws.rs.core","c":"Response","l":"notModified(String)","url":"notModified(java.lang.String)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"NotSupportedException","l":"NotSupportedException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"OK"},{"p":"javax.ws.rs.core","c":"Response","l":"ok()"},{"p":"javax.ws.rs.core","c":"Response","l":"ok(Object)","url":"ok(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Response","l":"ok(Object, MediaType)","url":"ok(java.lang.Object,javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"Response","l":"ok(Object, String)","url":"ok(java.lang.Object,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response","l":"ok(Object, Variant)","url":"ok(java.lang.Object,javax.ws.rs.core.Variant)"},{"p":"javax.ws.rs.sse","c":"SseBroadcaster","l":"onClose(Consumer<SseEventSink>)","url":"onClose(java.util.function.Consumer)"},{"p":"javax.ws.rs.container","c":"CompletionCallback","l":"onComplete(Throwable)","url":"onComplete(java.lang.Throwable)"},{"p":"javax.ws.rs.container","c":"ConnectionCallback","l":"onDisconnect(AsyncResponse)","url":"onDisconnect(javax.ws.rs.container.AsyncResponse)"},{"p":"javax.ws.rs.sse","c":"SseBroadcaster","l":"onError(BiConsumer<SseEventSink, Throwable>)","url":"onError(java.util.function.BiConsumer)"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"open()"},{"p":"javax.ws.rs","c":"HttpMethod","l":"OPTIONS"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"options()"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"options()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"options()"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"options()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"options(Class<R>)","url":"options(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"options(Class<T>)","url":"options(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"options(Class<T>)","url":"options(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"options(Class<T>)","url":"options(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"options(GenericType<R>)","url":"options(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"options(GenericType<T>)","url":"options(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"options(GenericType<T>)","url":"options(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"options(GenericType<T>)","url":"options(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"options(InvocationCallback<T>)","url":"options(javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"OTHER"},{"p":"javax.ws.rs.core","c":"Form","l":"param(String, String)","url":"param(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"param(String, String)","url":"param(java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"PARTIAL_CONTENT"},{"p":"javax.ws.rs","c":"HttpMethod","l":"PATCH"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"path(Class)","url":"path(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"path(Class, String)","url":"path(java.lang.Class,java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"path(Method)","url":"path(java.lang.reflect.Method)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"path(String)","url":"path(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"path(String)","url":"path(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"PAYMENT_REQUIRED"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"port(int)"},{"p":"javax.ws.rs","c":"HttpMethod","l":"POST"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>)","url":"post(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity<?>)","url":"post(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"post(Entity<?>)","url":"post(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"post(Entity<?>)","url":"post(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"post(Entity<?>, Class<R>)","url":"post(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>, Class<T>)","url":"post(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity<?>, Class<T>)","url":"post(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"post(Entity<?>, Class<T>)","url":"post(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"post(Entity<?>, GenericType<R>)","url":"post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>, GenericType<T>)","url":"post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"post(Entity<?>, GenericType<T>)","url":"post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"post(Entity<?>, GenericType<T>)","url":"post(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"post(Entity<?>, InvocationCallback<T>)","url":"post(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"PRECONDITION_FAILED"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"PRECONDITION_REQUIRED"},{"p":"javax.ws.rs.ext","c":"ReaderInterceptorContext","l":"proceed()"},{"p":"javax.ws.rs.ext","c":"WriterInterceptorContext","l":"proceed()"},{"p":"javax.ws.rs","c":"ProcessingException","l":"ProcessingException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"ProcessingException","l":"ProcessingException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ProcessingException","l":"ProcessingException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.client","c":"Invocation","l":"property(String, Object)","url":"property(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"property(String, Object)","url":"property(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"property(String, Object)","url":"property(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"PROXY_AUTHENTICATION_REQUIRED"},{"p":"javax.ws.rs","c":"HttpMethod","l":"PUT"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>)","url":"put(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity<?>)","url":"put(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"put(Entity<?>)","url":"put(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"put(Entity<?>)","url":"put(javax.ws.rs.client.Entity)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"put(Entity<?>, Class<R>)","url":"put(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>, Class<T>)","url":"put(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity<?>, Class<T>)","url":"put(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"put(Entity<?>, Class<T>)","url":"put(javax.ws.rs.client.Entity,java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"put(Entity<?>, GenericType<R>)","url":"put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>, GenericType<T>)","url":"put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"put(Entity<?>, GenericType<T>)","url":"put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"put(Entity<?>, GenericType<T>)","url":"put(javax.ws.rs.client.Entity,javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"put(Entity<?>, InvocationCallback<T>)","url":"put(javax.ws.rs.client.Entity,javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"put(K, List<V>)","url":"put(K,java.util.List)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"putAll(Map<? extends K, ? extends List<V>>)","url":"putAll(java.util.Map)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"putSingle(K, V)","url":"putSingle(K,V)"},{"p":"javax.ws.rs.core","c":"MultivaluedMap","l":"putSingle(K, V)","url":"putSingle(K,V)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"queryParam(String, Object...)","url":"queryParam(java.lang.String,java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"queryParam(String, Object...)","url":"queryParam(java.lang.String,java.lang.Object...)"},{"p":"javax.ws.rs.sse","c":"InboundSseEvent","l":"readData()"},{"p":"javax.ws.rs.sse","c":"InboundSseEvent","l":"readData(Class<T>)","url":"readData(java.lang.Class)"},{"p":"javax.ws.rs.sse","c":"InboundSseEvent","l":"readData(Class<T>, MediaType)","url":"readData(java.lang.Class,javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.sse","c":"InboundSseEvent","l":"readData(GenericType<T>)","url":"readData(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.sse","c":"InboundSseEvent","l":"readData(GenericType<T>, MediaType)","url":"readData(javax.ws.rs.core.GenericType,javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"Response","l":"readEntity(Class<T>)","url":"readEntity(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"Response","l":"readEntity(Class<T>, Annotation[])","url":"readEntity(java.lang.Class,java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.core","c":"Response","l":"readEntity(GenericType<T>)","url":"readEntity(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.core","c":"Response","l":"readEntity(GenericType<T>, Annotation[])","url":"readEntity(javax.ws.rs.core.GenericType,java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.ext","c":"MessageBodyReader","l":"readFrom(Class<T>, Type, Annotation[], MediaType, MultivaluedMap<String, String>, InputStream)","url":"readFrom(java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.InputStream)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"readTimeout(long, TimeUnit)","url":"readTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"javax.ws.rs.sse","c":"SseEvent","l":"RECONNECT_NOT_SET"},{"p":"javax.ws.rs.sse","c":"OutboundSseEvent.Builder","l":"reconnectDelay(long)"},{"p":"javax.ws.rs.sse","c":"SseEventSource.Builder","l":"reconnectingEvery(long, TimeUnit)","url":"reconnectingEvery(long,java.util.concurrent.TimeUnit)"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"REDIRECTION"},{"p":"javax.ws.rs","c":"RedirectionException","l":"RedirectionException(int, URI)","url":"%3Cinit%3E(int,java.net.URI)"},{"p":"javax.ws.rs","c":"RedirectionException","l":"RedirectionException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"RedirectionException","l":"RedirectionException(Response.Status, URI)","url":"%3Cinit%3E(javax.ws.rs.core.Response.Status,java.net.URI)"},{"p":"javax.ws.rs","c":"RedirectionException","l":"RedirectionException(String, int, URI)","url":"%3Cinit%3E(java.lang.String,int,java.net.URI)"},{"p":"javax.ws.rs","c":"RedirectionException","l":"RedirectionException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"RedirectionException","l":"RedirectionException(String, Response.Status, URI)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.net.URI)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"register(Class<?>)","url":"register(java.lang.Class)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Class<?>)","url":"register(java.lang.Class)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"register(Class<?>, Class<?>...)","url":"register(java.lang.Class,java.lang.Class...)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Class<?>, Class<?>...)","url":"register(java.lang.Class,java.lang.Class...)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Class<?>, int)","url":"register(java.lang.Class,int)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Class<?>, Map<Class<?>, Integer>)","url":"register(java.lang.Class,java.util.Map)"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"register(Consumer<InboundSseEvent>)","url":"register(java.util.function.Consumer)"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"register(Consumer<InboundSseEvent>, Consumer<Throwable>)","url":"register(java.util.function.Consumer,java.util.function.Consumer)"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"register(Consumer<InboundSseEvent>, Consumer<Throwable>, Runnable)","url":"register(java.util.function.Consumer,java.util.function.Consumer,java.lang.Runnable)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"register(Object)","url":"register(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Object)","url":"register(java.lang.Object)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Object, Class<?>...)","url":"register(java.lang.Object,java.lang.Class...)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Object, int)","url":"register(java.lang.Object,int)"},{"p":"javax.ws.rs.core","c":"Configurable","l":"register(Object, Map<Class<?>, Integer>)","url":"register(java.lang.Object,java.util.Map)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"register(Object, Object...)","url":"register(java.lang.Object,java.lang.Object...)"},{"p":"javax.ws.rs.sse","c":"SseBroadcaster","l":"register(SseEventSink)","url":"register(javax.ws.rs.sse.SseEventSink)"},{"p":"javax.ws.rs.core","c":"Link","l":"REL"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"rel(String)","url":"rel(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"relativize(URI)","url":"relativize(java.net.URI)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"remove(Object)","url":"remove(java.lang.Object)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"removeProperty(String)","url":"removeProperty(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"removeProperty(String)","url":"removeProperty(java.lang.String)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"removeProperty(String)","url":"removeProperty(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"replaceAll(MultivaluedMap<String, Object>)","url":"replaceAll(javax.ws.rs.core.MultivaluedMap)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"replaceMatrix(String)","url":"replaceMatrix(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"replaceMatrixParam(String, Object...)","url":"replaceMatrixParam(java.lang.String,java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"replacePath(String)","url":"replacePath(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"replaceQuery(String)","url":"replaceQuery(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"replaceQueryParam(String, Object...)","url":"replaceQueryParam(java.lang.String,java.lang.Object...)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"REQUEST_ENTITY_TOO_LARGE"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"REQUEST_HEADER_FIELDS_TOO_LARGE"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"REQUEST_TIMEOUT"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"REQUEST_URI_TOO_LONG"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"request()"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"request(MediaType...)","url":"request(javax.ws.rs.core.MediaType...)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"request(String...)","url":"request(java.lang.String...)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"REQUESTED_RANGE_NOT_SATISFIABLE"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"RESET_CONTENT"},{"p":"javax.ws.rs.core","c":"UriInfo","l":"resolve(URI)","url":"resolve(java.net.URI)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"resolveTemplate(String, Object)","url":"resolveTemplate(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"resolveTemplate(String, Object)","url":"resolveTemplate(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"resolveTemplate(String, Object, boolean)","url":"resolveTemplate(java.lang.String,java.lang.Object,boolean)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"resolveTemplate(String, Object, boolean)","url":"resolveTemplate(java.lang.String,java.lang.Object,boolean)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"resolveTemplateFromEncoded(String, Object)","url":"resolveTemplateFromEncoded(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"resolveTemplateFromEncoded(String, Object)","url":"resolveTemplateFromEncoded(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"resolveTemplates(Map<String, Object>)","url":"resolveTemplates(java.util.Map)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"resolveTemplates(Map<String, Object>)","url":"resolveTemplates(java.util.Map)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"resolveTemplates(Map<String, Object>, boolean)","url":"resolveTemplates(java.util.Map,boolean)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"resolveTemplates(Map<String, Object>, boolean)","url":"resolveTemplates(java.util.Map,boolean)"},{"p":"javax.ws.rs.client","c":"WebTarget","l":"resolveTemplatesFromEncoded(Map<String, Object>)","url":"resolveTemplatesFromEncoded(java.util.Map)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"resolveTemplatesFromEncoded(Map<String, Object>)","url":"resolveTemplatesFromEncoded(java.util.Map)"},{"p":"javax.ws.rs.core","c":"Response","l":"Response()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"ResponseBuilder()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, String)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String)"},{"p":"javax.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, String, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs.client","c":"ResponseProcessingException","l":"ResponseProcessingException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"resume(Object)","url":"resume(java.lang.Object)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"resume(Throwable)","url":"resume(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"RETRY_AFTER"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"RuntimeDelegate()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"rx()"},{"p":"javax.ws.rs.client","c":"Invocation.Builder","l":"rx(Class<T>)","url":"rx(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"scheduledExecutorService(ScheduledExecutorService)","url":"scheduledExecutorService(java.util.concurrent.ScheduledExecutorService)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"scheme(String)","url":"scheme(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"schemeSpecificPart(String)","url":"schemeSpecificPart(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"SEE_OTHER"},{"p":"javax.ws.rs.core","c":"Response","l":"seeOther(URI)","url":"seeOther(java.net.URI)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"segment(String...)","url":"segment(java.lang.String...)"},{"p":"javax.ws.rs.core","c":"Request","l":"selectVariant(List<Variant>)","url":"selectVariant(java.util.List)"},{"p":"javax.ws.rs.sse","c":"SseEventSink","l":"send(OutboundSseEvent)","url":"send(javax.ws.rs.sse.OutboundSseEvent)"},{"p":"javax.ws.rs","c":"RuntimeType","l":"SERVER"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"SERVER_ERROR"},{"p":"javax.ws.rs.core","c":"MediaType","l":"SERVER_SENT_EVENTS"},{"p":"javax.ws.rs.core","c":"MediaType","l":"SERVER_SENT_EVENTS_TYPE"},{"p":"javax.ws.rs.core","c":"Response","l":"serverError()"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(int)","url":"%3Cinit%3E(int)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(int, Throwable)","url":"%3Cinit%3E(int,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response.Status)","url":"%3Cinit%3E(javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(Response.Status, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, int, Throwable)","url":"%3Cinit%3E(java.lang.String,int,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response.Status)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"ServerErrorException","l":"ServerErrorException(String, Response.Status, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status,java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"SERVICE_UNAVAILABLE"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Date)","url":"%3Cinit%3E(java.util.Date)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Date, Throwable)","url":"%3Cinit%3E(java.util.Date,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Long)","url":"%3Cinit%3E(java.lang.Long)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Long, Throwable)","url":"%3Cinit%3E(java.lang.Long,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(Response, Throwable)","url":"%3Cinit%3E(javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Date)","url":"%3Cinit%3E(java.lang.String,java.util.Date)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Date, Throwable)","url":"%3Cinit%3E(java.lang.String,java.util.Date,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Long)","url":"%3Cinit%3E(java.lang.String,java.lang.Long)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Long, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Long,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"ServiceUnavailableException","l":"ServiceUnavailableException(String, Response, Throwable)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response,java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"SET_COOKIE"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"setAnnotations(Annotation[])","url":"setAnnotations(java.lang.annotation.Annotation[])"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"setEntity(Object)","url":"setEntity(java.lang.Object)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"setEntity(Object)","url":"setEntity(java.lang.Object)"},{"p":"javax.ws.rs.ext","c":"WriterInterceptorContext","l":"setEntity(Object)","url":"setEntity(java.lang.Object)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"setEntity(Object, Annotation[], MediaType)","url":"setEntity(java.lang.Object,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"setEntity(Object, Annotation[], MediaType)","url":"setEntity(java.lang.Object,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"setEntityStream(InputStream)","url":"setEntityStream(java.io.InputStream)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"setEntityStream(InputStream)","url":"setEntityStream(java.io.InputStream)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"setEntityStream(OutputStream)","url":"setEntityStream(java.io.OutputStream)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"setEntityStream(OutputStream)","url":"setEntityStream(java.io.OutputStream)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"setGenericType(Type)","url":"setGenericType(java.lang.reflect.Type)"},{"p":"javax.ws.rs.ext","c":"ReaderInterceptorContext","l":"setInputStream(InputStream)","url":"setInputStream(java.io.InputStream)"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate","l":"setInstance(RuntimeDelegate)","url":"setInstance(javax.ws.rs.ext.RuntimeDelegate)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setMaxAge(int)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"setMediaType(MediaType)","url":"setMediaType(javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"setMethod(String)","url":"setMethod(java.lang.String)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"setMethod(String)","url":"setMethod(java.lang.String)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setMustRevalidate(boolean)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setNoCache(boolean)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setNoStore(boolean)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setNoTransform(boolean)"},{"p":"javax.ws.rs.ext","c":"WriterInterceptorContext","l":"setOutputStream(OutputStream)","url":"setOutputStream(java.io.OutputStream)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setPrivate(boolean)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"setProperty(String, Object)","url":"setProperty(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"setProperty(String, Object)","url":"setProperty(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"setProperty(String, Object)","url":"setProperty(java.lang.String,java.lang.Object)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setProxyRevalidate(boolean)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"setRequestUri(URI)","url":"setRequestUri(java.net.URI)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"setRequestUri(URI, URI)","url":"setRequestUri(java.net.URI,java.net.URI)"},{"p":"javax.ws.rs.container","c":"ContainerRequestContext","l":"setSecurityContext(SecurityContext)","url":"setSecurityContext(javax.ws.rs.core.SecurityContext)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"setSMaxAge(int)"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"setStatus(int)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"setStatus(int)"},{"p":"javax.ws.rs.client","c":"ClientResponseContext","l":"setStatusInfo(Response.StatusType)","url":"setStatusInfo(javax.ws.rs.core.Response.StatusType)"},{"p":"javax.ws.rs.container","c":"ContainerResponseContext","l":"setStatusInfo(Response.StatusType)","url":"setStatusInfo(javax.ws.rs.core.Response.StatusType)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"setTimeout(long, TimeUnit)","url":"setTimeout(long,java.util.concurrent.TimeUnit)"},{"p":"javax.ws.rs.container","c":"AsyncResponse","l":"setTimeoutHandler(TimeoutHandler)","url":"setTimeoutHandler(javax.ws.rs.container.TimeoutHandler)"},{"p":"javax.ws.rs.ext","c":"InterceptorContext","l":"setType(Class<?>)","url":"setType(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"ClientRequestContext","l":"setUri(URI)","url":"setUri(java.net.URI)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"size()"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"sslContext(SSLContext)","url":"sslContext(javax.net.ssl.SSLContext)"},{"p":"javax.ws.rs.core","c":"Response","l":"status(int)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"status(int)"},{"p":"javax.ws.rs.core","c":"Response","l":"status(int, String)","url":"status(int,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"status(int, String)","url":"status(int,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response","l":"status(Response.Status)","url":"status(javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"status(Response.Status)","url":"status(javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs.core","c":"Response","l":"status(Response.StatusType)","url":"status(javax.ws.rs.core.Response.StatusType)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"status(Response.StatusType)","url":"status(javax.ws.rs.core.Response.StatusType)"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"store"},{"p":"javax.ws.rs.client","c":"Invocation","l":"submit()"},{"p":"javax.ws.rs.client","c":"Invocation","l":"submit(Class<T>)","url":"submit(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"Invocation","l":"submit(GenericType<T>)","url":"submit(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"Invocation","l":"submit(InvocationCallback<T>)","url":"submit(javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"SUCCESSFUL"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"tag(EntityTag)","url":"tag(javax.ws.rs.core.EntityTag)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"tag(String)","url":"tag(java.lang.String)"},{"p":"javax.ws.rs.client","c":"Client","l":"target(Link)","url":"target(javax.ws.rs.core.Link)"},{"p":"javax.ws.rs.client","c":"Client","l":"target(String)","url":"target(java.lang.String)"},{"p":"javax.ws.rs.client","c":"Client","l":"target(URI)","url":"target(java.net.URI)"},{"p":"javax.ws.rs.client","c":"Client","l":"target(UriBuilder)","url":"target(javax.ws.rs.core.UriBuilder)"},{"p":"javax.ws.rs.sse","c":"SseEventSource","l":"target(WebTarget)","url":"target(javax.ws.rs.client.WebTarget)"},{"p":"javax.ws.rs.sse","c":"SseEventSource.Builder","l":"target(WebTarget)","url":"target(javax.ws.rs.client.WebTarget)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"TEMPORARY_REDIRECT"},{"p":"javax.ws.rs.core","c":"Response","l":"temporaryRedirect(URI)","url":"temporaryRedirect(java.net.URI)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"TEXT_HTML"},{"p":"javax.ws.rs.core","c":"MediaType","l":"TEXT_HTML_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"TEXT_PLAIN"},{"p":"javax.ws.rs.core","c":"MediaType","l":"TEXT_PLAIN_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"TEXT_XML"},{"p":"javax.ws.rs.core","c":"MediaType","l":"TEXT_XML_TYPE"},{"p":"javax.ws.rs.client","c":"Entity","l":"text(T)"},{"p":"javax.ws.rs.core","c":"Link","l":"TITLE"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"title(String)","url":"title(java.lang.String)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"toCookie()"},{"p":"javax.ws.rs.core","c":"Response.StatusType","l":"toEnum()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"TOO_MANY_REQUESTS"},{"p":"javax.ws.rs.ext","c":"ExceptionMapper","l":"toResponse(E)"},{"p":"javax.ws.rs.client","c":"Entity","l":"toString()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"toString()"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"toString()"},{"p":"javax.ws.rs.core","c":"Cookie","l":"toString()"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"toString()"},{"p":"javax.ws.rs.core","c":"GenericEntity","l":"toString()"},{"p":"javax.ws.rs.core","c":"GenericType","l":"toString()"},{"p":"javax.ws.rs.core","c":"Link","l":"toString()"},{"p":"javax.ws.rs.core","c":"MediaType","l":"toString()"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"toString()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"toString()"},{"p":"javax.ws.rs.core","c":"Variant","l":"toString()"},{"p":"javax.ws.rs.ext","c":"ParamConverter","l":"toString(T)"},{"p":"javax.ws.rs.ext","c":"RuntimeDelegate.HeaderDelegate","l":"toString(T)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"toTemplate()"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"trace()"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"trace()"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"trace()"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"trace(Class<R>)","url":"trace(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"trace(Class<T>)","url":"trace(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace(Class<T>)","url":"trace(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"trace(Class<T>)","url":"trace(java.lang.Class)"},{"p":"javax.ws.rs.client","c":"RxInvoker","l":"trace(GenericType<R>)","url":"trace(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"trace(GenericType<T>)","url":"trace(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"CompletionStageRxInvoker","l":"trace(GenericType<T>)","url":"trace(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"SyncInvoker","l":"trace(GenericType<T>)","url":"trace(javax.ws.rs.core.GenericType)"},{"p":"javax.ws.rs.client","c":"AsyncInvoker","l":"trace(InvocationCallback<T>)","url":"trace(javax.ws.rs.client.InvocationCallback)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"trustStore(KeyStore)","url":"trustStore(java.security.KeyStore)"},{"p":"javax.ws.rs.core","c":"Link","l":"TYPE"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"type(MediaType)","url":"type(javax.ws.rs.core.MediaType)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"type(String)","url":"type(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"type(String)","url":"type(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"UNAUTHORIZED"},{"p":"javax.ws.rs.core","c":"Link.JaxbAdapter","l":"unmarshal(Link.JaxbLink)","url":"unmarshal(javax.ws.rs.core.Link.JaxbLink)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"UNSUPPORTED_MEDIA_TYPE"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"uri(String)","url":"uri(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"uri(String)","url":"uri(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"uri(URI)","url":"uri(java.net.URI)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"uri(URI)","url":"uri(java.net.URI)"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"UriBuilder()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"Link.Builder","l":"uriBuilder(UriBuilder)","url":"uriBuilder(javax.ws.rs.core.UriBuilder)"},{"p":"javax.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"UriBuilderException","l":"UriBuilderException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"USE_PROXY"},{"p":"javax.ws.rs","c":"Priorities","l":"USER"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"USER_AGENT"},{"p":"javax.ws.rs.core","c":"UriBuilder","l":"userInfo(String)","url":"userInfo(java.lang.String)"},{"p":"javax.ws.rs","c":"ApplicationPath","l":"value()"},{"p":"javax.ws.rs","c":"ConstrainedTo","l":"value()"},{"p":"javax.ws.rs","c":"Consumes","l":"value()"},{"p":"javax.ws.rs","c":"CookieParam","l":"value()"},{"p":"javax.ws.rs","c":"DefaultValue","l":"value()"},{"p":"javax.ws.rs","c":"FormParam","l":"value()"},{"p":"javax.ws.rs","c":"HeaderParam","l":"value()"},{"p":"javax.ws.rs","c":"HttpMethod","l":"value()"},{"p":"javax.ws.rs","c":"MatrixParam","l":"value()"},{"p":"javax.ws.rs","c":"Path","l":"value()"},{"p":"javax.ws.rs","c":"PathParam","l":"value()"},{"p":"javax.ws.rs","c":"Produces","l":"value()"},{"p":"javax.ws.rs","c":"QueryParam","l":"value()"},{"p":"javax.ws.rs","c":"RuntimeType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"CacheControl","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Cookie","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"EntityTag","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Link","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"NewCookie","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"javax.ws.rs","c":"RuntimeType","l":"values()"},{"p":"javax.ws.rs.core","c":"AbstractMultivaluedMap","l":"values()"},{"p":"javax.ws.rs.core","c":"Response.Status","l":"values()"},{"p":"javax.ws.rs.core","c":"Response.Status.Family","l":"values()"},{"p":"javax.ws.rs.core","c":"Variant","l":"Variant(MediaType, Locale, String)","url":"%3Cinit%3E(javax.ws.rs.core.MediaType,java.util.Locale,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String)","url":"%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String, String)","url":"%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Variant","l":"Variant(MediaType, String, String, String, String)","url":"%3Cinit%3E(javax.ws.rs.core.MediaType,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"variant(Variant)","url":"variant(javax.ws.rs.core.Variant)"},{"p":"javax.ws.rs.core","c":"Variant.VariantListBuilder","l":"VariantListBuilder()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"variants(List<Variant>)","url":"variants(java.util.List)"},{"p":"javax.ws.rs.core","c":"Response.ResponseBuilder","l":"variants(Variant...)","url":"variants(javax.ws.rs.core.Variant...)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"VARY"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException()","url":"%3Cinit%3E()"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(int)","url":"%3Cinit%3E(int)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Response)","url":"%3Cinit%3E(javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Response.Status)","url":"%3Cinit%3E(javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Response)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Response.Status)","url":"%3Cinit%3E(java.lang.String,javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, int)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,int)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, Response)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(String, Throwable, Response.Status)","url":"%3Cinit%3E(java.lang.String,java.lang.Throwable,javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, int)","url":"%3Cinit%3E(java.lang.Throwable,int)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, Response)","url":"%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response)"},{"p":"javax.ws.rs","c":"WebApplicationException","l":"WebApplicationException(Throwable, Response.Status)","url":"%3Cinit%3E(java.lang.Throwable,javax.ws.rs.core.Response.Status)"},{"p":"javax.ws.rs.core","c":"MediaType","l":"WILDCARD"},{"p":"javax.ws.rs.core","c":"MediaType","l":"WILDCARD_TYPE"},{"p":"javax.ws.rs.core","c":"MediaType","l":"withCharset(String)","url":"withCharset(java.lang.String)"},{"p":"javax.ws.rs.client","c":"ClientBuilder","l":"withConfig(Configuration)","url":"withConfig(javax.ws.rs.core.Configuration)"},{"p":"javax.ws.rs.core","c":"StreamingOutput","l":"write(OutputStream)","url":"write(java.io.OutputStream)"},{"p":"javax.ws.rs.ext","c":"MessageBodyWriter","l":"writeTo(T, Class<?>, Type, Annotation[], MediaType, MultivaluedMap<String, Object>, OutputStream)","url":"writeTo(T,java.lang.Class,java.lang.reflect.Type,java.lang.annotation.Annotation[],javax.ws.rs.core.MediaType,javax.ws.rs.core.MultivaluedMap,java.io.OutputStream)"},{"p":"javax.ws.rs.core","c":"HttpHeaders","l":"WWW_AUTHENTICATE"},{"p":"javax.ws.rs.client","c":"Entity","l":"xhtml(T)"},{"p":"javax.ws.rs.client","c":"Entity","l":"xml(T)"}]
\ No newline at end of file
diff --git a/apidocs/2.1.6/member-search-index.zip b/apidocs/2.1.6/member-search-index.zip
new file mode 100644
index 0000000..809cfc3
--- /dev/null
+++ b/apidocs/2.1.6/member-search-index.zip
Binary files differ
diff --git a/apidocs/2.1.6/overview-summary.html b/apidocs/2.1.6/overview-summary.html
new file mode 100644
index 0000000..63645d6
--- /dev/null
+++ b/apidocs/2.1.6/overview-summary.html
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>jakarta.ws.rs-api 2.1.6 API</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<script type="text/javascript">window.location.replace('index.html')</script>
+<noscript>
+<meta http-equiv="Refresh" content="0;index.html">
+</noscript>
+<link rel="canonical" href="index.html">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+</head>
+<body>
+<main role="main">
+<noscript>
+<p>JavaScript is disabled on your browser.</p>
+</noscript>
+<p><a href="index.html">index.html</a></p>
+</main>
+</body>
+</html>
diff --git a/apidocs/2.1.6/overview-tree.html b/apidocs/2.1.6/overview-tree.html
new file mode 100644
index 0000000..fe06f07
--- /dev/null
+++ b/apidocs/2.1.6/overview-tree.html
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="javax/ws/rs/package-tree.html">javax.ws.rs</a>, </li>
+<li><a href="javax/ws/rs/client/package-tree.html">javax.ws.rs.client</a>, </li>
+<li><a href="javax/ws/rs/container/package-tree.html">javax.ws.rs.container</a>, </li>
+<li><a href="javax/ws/rs/core/package-tree.html">javax.ws.rs.core</a>, </li>
+<li><a href="javax/ws/rs/ext/package-tree.html">javax.ws.rs.ext</a>, </li>
+<li><a href="javax/ws/rs/sse/package-tree.html">javax.ws.rs.sse</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<section role="region">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">AbstractMultivaluedMap</span></a>&lt;K,&#8203;V&gt; (implements javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;K,&#8203;V&gt;)
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">MultivaluedHashMap</span></a>&lt;K,&#8203;V&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)</li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Application.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Application</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/CacheControl.html" title="class in javax.ws.rs.core"><span class="typeNameLink">CacheControl</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/ClientBuilder.html" title="class in javax.ws.rs.client"><span class="typeNameLink">ClientBuilder</span></a> (implements javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core">Configurable</a>&lt;C&gt;)</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Cookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Cookie</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">NewCookie</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/Entity.html" title="class in javax.ws.rs.client"><span class="typeNameLink">Entity</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/EntityTag.html" title="class in javax.ws.rs.core"><span class="typeNameLink">EntityTag</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Form.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Form</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/GenericEntity.html" title="class in javax.ws.rs.core"><span class="typeNameLink">GenericEntity</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/GenericType.html" title="class in javax.ws.rs.core"><span class="typeNameLink">GenericType</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Link.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbLink.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link.JaxbLink</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/MediaType.html" title="class in javax.ws.rs.core"><span class="typeNameLink">MediaType</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/Priorities.html" title="class in javax.ws.rs"><span class="typeNameLink">Priorities</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Response</span></a> (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink">AutoCloseable</a>)</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Response.ResponseBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Response.ResponseBuilder</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.html" title="class in javax.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.Builder.html" title="class in javax.ws.rs.sse"><span class="typeNameLink">SseEventSource.Builder</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li class="circle">java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink"><span class="typeNameLink">IOException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">NoContentException</span></a></li>
+</ul>
+</li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">RuntimeException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs"><span class="typeNameLink">ProcessingException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client"><span class="typeNameLink">ResponseProcessingException</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core"><span class="typeNameLink">UriBuilderException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs"><span class="typeNameLink">WebApplicationException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">ClientErrorException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs"><span class="typeNameLink">BadRequestException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs"><span class="typeNameLink">ForbiddenException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAcceptableException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAllowedException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotAuthorizedException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotFoundException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs"><span class="typeNameLink">NotSupportedException</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs"><span class="typeNameLink">RedirectionException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">ServerErrorException</span></a>
+<ul>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs"><span class="typeNameLink">InternalServerErrorException</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs"><span class="typeNameLink">ServiceUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/UriBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">UriBuilder</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Variant</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Variant.VariantListBuilder.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Variant.VariantListBuilder</span></a></li>
+<li class="circle">javax.xml.bind.annotation.adapters.<a href="https://docs.oracle.com/javase/8/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html?is-external=true" title="class or interface in javax.xml.bind.annotation.adapters" class="externalLink"><span class="typeNameLink">XmlAdapter</span></a>&lt;ValueType,&#8203;BoundType&gt;
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Link.JaxbAdapter.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Link.JaxbAdapter</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/AsyncInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">AsyncInvoker</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/AsyncResponse.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">AsyncResponse</span></a></li>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">AutoCloseable</span></a>
+<ul>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseBroadcaster.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseBroadcaster</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSink.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEventSink</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEventSource.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEventSource</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestContext.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientRequestContext</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/ClientRequestFilter.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientRequestFilter</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseContext.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientResponseContext</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/ClientResponseFilter.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">ClientResponseFilter</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/CompletionCallback.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">CompletionCallback</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Configurable.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configurable</span></a>&lt;C&gt;
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/Client.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Client</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/FeatureContext.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">FeatureContext</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/WebTarget.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">WebTarget</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Configuration.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Configuration</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ConnectionCallback.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ConnectionCallback</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerRequestContext</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerRequestFilter.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerRequestFilter</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerResponseContext</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ContainerResponseFilter.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ContainerResponseFilter</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ContextResolver.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ContextResolver</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/DynamicFeature.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">DynamicFeature</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ExceptionMapper.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ExceptionMapper</span></a>&lt;E&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Feature.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Feature</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/HttpHeaders.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">HttpHeaders</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/InterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">InterceptorContext</span></a>
+<ul>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ReaderInterceptorContext</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptorContext.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">WriterInterceptorContext</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Invocation</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/InvocationCallback.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">InvocationCallback</span></a>&lt;RESPONSE&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Link.Builder.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Link.Builder</span></a></li>
+<li class="circle">java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><span class="typeNameLink">Map</span></a>&lt;K,&#8203;V&gt;
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">MultivaluedMap</span></a>&lt;K,&#8203;V&gt;</li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyReader.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">MessageBodyReader</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/MessageBodyWriter.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">MessageBodyWriter</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.Builder.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent.Builder</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ParamConverter.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ParamConverter</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ParamConverterProvider.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ParamConverterProvider</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/PathSegment.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">PathSegment</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/Providers.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">Providers</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ReaderInterceptor.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">ReaderInterceptor</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Request.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Request</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ResourceContext.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ResourceContext</span></a></li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/ResourceInfo.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">ResourceInfo</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">Response.StatusType</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/RuntimeDelegate.HeaderDelegate.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">RuntimeDelegate.HeaderDelegate</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">RxInvoker</span></a>&lt;T&gt;
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/CompletionStageRxInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">CompletionStageRxInvoker</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/RxInvokerProvider.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">RxInvokerProvider</span></a>&lt;T&gt;</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/SecurityContext.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">SecurityContext</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/Sse.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">Sse</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/SseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">SseEvent</span></a>
+<ul>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/InboundSseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">InboundSseEvent</span></a></li>
+<li class="circle">javax.ws.rs.sse.<a href="javax/ws/rs/sse/OutboundSseEvent.html" title="interface in javax.ws.rs.sse"><span class="typeNameLink">OutboundSseEvent</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/StreamingOutput.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">StreamingOutput</span></a></li>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/SyncInvoker.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">SyncInvoker</span></a>
+<ul>
+<li class="circle">javax.ws.rs.client.<a href="javax/ws/rs/client/Invocation.Builder.html" title="interface in javax.ws.rs.client"><span class="typeNameLink">Invocation.Builder</span></a></li>
+</ul>
+</li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/TimeoutHandler.html" title="interface in javax.ws.rs.container"><span class="typeNameLink">TimeoutHandler</span></a></li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/UriInfo.html" title="interface in javax.ws.rs.core"><span class="typeNameLink">UriInfo</span></a></li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/WriterInterceptor.html" title="interface in javax.ws.rs.ext"><span class="typeNameLink">WriterInterceptor</span></a></li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ApplicationPath.html" title="annotation in javax.ws.rs"><span class="typeNameLink">ApplicationPath</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/BeanParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">BeanParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/ConstrainedTo.html" title="annotation in javax.ws.rs"><span class="typeNameLink">ConstrainedTo</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/Consumes.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Consumes</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Context.html" title="annotation in javax.ws.rs.core"><span class="typeNameLink">Context</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/CookieParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">CookieParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/DefaultValue.html" title="annotation in javax.ws.rs"><span class="typeNameLink">DefaultValue</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/DELETE.html" title="annotation in javax.ws.rs"><span class="typeNameLink">DELETE</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/Encoded.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Encoded</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/FormParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">FormParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/GET.html" title="annotation in javax.ws.rs"><span class="typeNameLink">GET</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/HEAD.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HEAD</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/HeaderParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HeaderParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/HttpMethod.html" title="annotation in javax.ws.rs"><span class="typeNameLink">HttpMethod</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/MatrixParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">MatrixParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/NameBinding.html" title="annotation in javax.ws.rs"><span class="typeNameLink">NameBinding</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/OPTIONS.html" title="annotation in javax.ws.rs"><span class="typeNameLink">OPTIONS</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/ParamConverter.Lazy.html" title="annotation in javax.ws.rs.ext"><span class="typeNameLink">ParamConverter.Lazy</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/PATCH.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PATCH</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/Path.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Path</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/PathParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PathParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/POST.html" title="annotation in javax.ws.rs"><span class="typeNameLink">POST</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/PreMatching.html" title="annotation in javax.ws.rs.container"><span class="typeNameLink">PreMatching</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/Produces.html" title="annotation in javax.ws.rs"><span class="typeNameLink">Produces</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.ext.<a href="javax/ws/rs/ext/Provider.html" title="annotation in javax.ws.rs.ext"><span class="typeNameLink">Provider</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/PUT.html" title="annotation in javax.ws.rs"><span class="typeNameLink">PUT</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/QueryParam.html" title="annotation in javax.ws.rs"><span class="typeNameLink">QueryParam</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+<li class="circle">javax.ws.rs.container.<a href="javax/ws/rs/container/Suspended.html" title="annotation in javax.ws.rs.container"><span class="typeNameLink">Suspended</span></a> (implements java.lang.annotation.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation" class="externalLink">Annotation</a>)</li>
+</ul>
+</section>
+<section role="region">
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li class="circle">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" class="externalLink"><span class="typeNameLink">Object</span></a>
+<ul>
+<li class="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;T&gt;, java.lang.constant.Constable, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a>)
+<ul>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.html" title="enum in javax.ws.rs.core"><span class="typeNameLink">Response.Status</span></a> (implements javax.ws.rs.core.<a href="javax/ws/rs/core/Response.StatusType.html" title="interface in javax.ws.rs.core">Response.StatusType</a>)</li>
+<li class="circle">javax.ws.rs.core.<a href="javax/ws/rs/core/Response.Status.Family.html" title="enum in javax.ws.rs.core"><span class="typeNameLink">Response.Status.Family</span></a></li>
+<li class="circle">javax.ws.rs.<a href="javax/ws/rs/RuntimeType.html" title="enum in javax.ws.rs"><span class="typeNameLink">RuntimeType</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/package-search-index.js b/apidocs/2.1.6/package-search-index.js
new file mode 100644
index 0000000..7be55b6
--- /dev/null
+++ b/apidocs/2.1.6/package-search-index.js
@@ -0,0 +1 @@
+packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"javax.ws.rs"},{"l":"javax.ws.rs.client"},{"l":"javax.ws.rs.container"},{"l":"javax.ws.rs.core"},{"l":"javax.ws.rs.ext"},{"l":"javax.ws.rs.sse"}]
\ No newline at end of file
diff --git a/apidocs/2.1.6/package-search-index.zip b/apidocs/2.1.6/package-search-index.zip
new file mode 100644
index 0000000..fe644e1
--- /dev/null
+++ b/apidocs/2.1.6/package-search-index.zip
Binary files differ
diff --git a/apidocs/2.1.6/resources/EFSL.html b/apidocs/2.1.6/resources/EFSL.html
new file mode 100644
index 0000000..5cf19a7
--- /dev/null
+++ b/apidocs/2.1.6/resources/EFSL.html
@@ -0,0 +1,72 @@
+<html>
+<head>
+    <title>Eclipse Foundation Specification License - v1.0</title>
+</head>
+<body>
+<h1>Eclipse Foundation Specification License - v1.0</h1>
+<p>By using and/or copying this document, or the Eclipse Foundation
+    document from which this statement is linked, you (the licensee) agree
+    that you have read, understood, and will comply with the following
+    terms and conditions:</p>
+
+<p>Permission to copy, and distribute the contents of this document, or
+    the Eclipse Foundation document from which this statement is linked, in
+    any medium for any purpose and without fee or royalty is hereby
+    granted, provided that you include the following on ALL copies of the
+    document, or portions thereof, that you use:</p>
+
+<ul>
+    <li> link or URL to the original Eclipse Foundation document.</li>
+    <li>All existing copyright notices, or if one does not exist, a notice
+        (hypertext is preferred, but a textual representation is permitted)
+        of the form: &quot;Copyright &copy; [$date-of-document]
+        &ldquo;Eclipse Foundation, Inc. &lt;&lt;url to this license&gt;&gt;
+        &quot;
+    </li>
+</ul>
+
+<p>Inclusion of the full text of this NOTICE must be provided. We
+    request that authorship attribution be provided in any software,
+    documents, or other items or products that you create pursuant to the
+    implementation of the contents of this document, or any portion
+    thereof.</p>
+
+<p>No right to create modifications or derivatives of Eclipse Foundation
+    documents is granted pursuant to this license, except anyone may
+    prepare and distribute derivative works and portions of this document
+    in software that implements the specification, in supporting materials
+    accompanying such software, and in documentation of such software,
+    PROVIDED that all such works include the notice below. HOWEVER, the
+    publication of derivative works of this document for use as a technical
+    specification is expressly prohibited.</p>
+
+<p>The notice is:</p>
+
+<p>&quot;Copyright &copy; 2018 Eclipse Foundation. This software or
+    document includes material copied from or derived from [title and URI
+    of the Eclipse Foundation specification document].&quot;</p>
+
+<h2>Disclaimers</h2>
+
+<p>THIS DOCUMENT IS PROVIDED &quot;AS IS,&quot; AND THE COPYRIGHT
+    HOLDERS AND THE ECLIPSE FOUNDATION MAKE NO REPRESENTATIONS OR
+    WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+    WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+    NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
+    SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS
+    WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
+    OTHER RIGHTS.</p>
+
+<p>THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION WILL NOT BE LIABLE
+    FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT
+    OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE
+    CONTENTS THEREOF.</p>
+
+<p>The name and trademarks of the copyright holders or the Eclipse
+    Foundation may NOT be used in advertising or publicity pertaining to
+    this document or its contents without specific, written prior
+    permission. Title to copyright in this document will at all times
+    remain with copyright holders.</p>
+
+</body>
+</html>
diff --git a/apidocs/2.1.6/resources/glass.png b/apidocs/2.1.6/resources/glass.png
new file mode 100644
index 0000000..a7f591f
--- /dev/null
+++ b/apidocs/2.1.6/resources/glass.png
Binary files differ
diff --git a/apidocs/2.1.6/resources/x.png b/apidocs/2.1.6/resources/x.png
new file mode 100644
index 0000000..30548a7
--- /dev/null
+++ b/apidocs/2.1.6/resources/x.png
Binary files differ
diff --git a/apidocs/2.1.6/script.js b/apidocs/2.1.6/script.js
new file mode 100644
index 0000000..57133ad
--- /dev/null
+++ b/apidocs/2.1.6/script.js
@@ -0,0 +1,166 @@
+/*
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var moduleSearchIndex;
+var packageSearchIndex;
+var typeSearchIndex;
+var memberSearchIndex;
+var tagSearchIndex;
+function loadScripts(doc, tag) {
+    createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
+    createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
+    if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
+            window.navigator.userAgent.indexOf('Edge/') > 0) {
+        createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
+    }
+    createElem(doc, tag, 'search.js');
+
+    $.get(pathtoroot + "module-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
+                    JSZip.loadAsync(data).then(function(zip){
+                        zip.file("module-search-index.json").async("text").then(function(content){
+                            moduleSearchIndex = JSON.parse(content);
+                        });
+                    });
+                });
+            });
+    $.get(pathtoroot + "package-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
+                    JSZip.loadAsync(data).then(function(zip){
+                        zip.file("package-search-index.json").async("text").then(function(content){
+                            packageSearchIndex = JSON.parse(content);
+                        });
+                    });
+                });
+            });
+    $.get(pathtoroot + "type-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
+                    JSZip.loadAsync(data).then(function(zip){
+                        zip.file("type-search-index.json").async("text").then(function(content){
+                            typeSearchIndex = JSON.parse(content);
+                        });
+                    });
+                });
+            });
+    $.get(pathtoroot + "member-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
+                    JSZip.loadAsync(data).then(function(zip){
+                        zip.file("member-search-index.json").async("text").then(function(content){
+                            memberSearchIndex = JSON.parse(content);
+                        });
+                    });
+                });
+            });
+    $.get(pathtoroot + "tag-search-index.zip")
+            .done(function() {
+                JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
+                    JSZip.loadAsync(data).then(function(zip){
+                        zip.file("tag-search-index.json").async("text").then(function(content){
+                            tagSearchIndex = JSON.parse(content);
+                        });
+                    });
+                });
+            });
+    if (!moduleSearchIndex) {
+        createElem(doc, tag, 'module-search-index.js');
+    }
+    if (!packageSearchIndex) {
+        createElem(doc, tag, 'package-search-index.js');
+    }
+    if (!typeSearchIndex) {
+        createElem(doc, tag, 'type-search-index.js');
+    }
+    if (!memberSearchIndex) {
+        createElem(doc, tag, 'member-search-index.js');
+    }
+    if (!tagSearchIndex) {
+        createElem(doc, tag, 'tag-search-index.js');
+    }
+    $(window).resize(function() {
+        $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+    });
+}
+
+function createElem(doc, tag, path) {
+    var script = doc.createElement(tag);
+    var scriptElement = doc.getElementsByTagName(tag)[0];
+    script.src = pathtoroot + path;
+    scriptElement.parentNode.insertBefore(script, scriptElement);
+}
+
+function show(type) {
+    count = 0;
+    for (var key in data) {
+        var row = document.getElementById(key);
+        if ((data[key] &  type) !== 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type) {
+    var firstRow = document.getElementById(Object.keys(data)[0]);
+    var table = firstRow.closest('table');
+    for (var value in tabs) {
+        var tab = document.getElementById(tabs[value][0]);
+        if (value == type) {
+            tab.className = activeTableTab;
+            tab.innerHTML = tabs[value][1];
+            tab.setAttribute('aria-selected', true);
+            tab.setAttribute('tabindex',0);
+            table.setAttribute('aria-labelledby', tabs[value][0]);
+        }
+        else {
+            tab.className = tableTab;
+            tab.setAttribute('aria-selected', false);
+            tab.setAttribute('tabindex',-1);
+            tab.setAttribute('onclick', "show("+ value + ")");
+            tab.innerHTML = tabs[value][1];
+        }
+    }
+}
+
+function updateModuleFrame(pFrame, cFrame) {
+    top.packageFrame.location = pFrame;
+    top.classFrame.location = cFrame;
+}
+function switchTab(e) {
+    if (e.keyCode == 37 || e.keyCode == 38) {
+        $("[aria-selected=true]").prev().click().focus();
+        e.preventDefault();
+    }
+    if (e.keyCode == 39 || e.keyCode == 40) {
+        $("[aria-selected=true]").next().click().focus();
+        e.preventDefault();
+    }
+}
diff --git a/apidocs/2.1.6/search.js b/apidocs/2.1.6/search.js
new file mode 100644
index 0000000..620ba97
--- /dev/null
+++ b/apidocs/2.1.6/search.js
@@ -0,0 +1,331 @@
+/*
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+var noResult = {l: "No results found"};
+var catModules = "Modules";
+var catPackages = "Packages";
+var catTypes = "Types";
+var catMembers = "Members";
+var catSearchTags = "SearchTags";
+var highlight = "<span class=\"resultHighlight\">$&</span>";
+var camelCaseRegexp = "";
+var secondaryMatcher = "";
+function escapeHtml(str) {
+    return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
+}
+function getHighlightedText(item) {
+    var ccMatcher = new RegExp(escapeHtml(camelCaseRegexp));
+    var escapedItem = escapeHtml(item);
+    var label = escapedItem.replace(ccMatcher, highlight);
+    if (label === escapedItem) {
+        var secMatcher = new RegExp(escapeHtml(secondaryMatcher.source), "i");
+        label = escapedItem.replace(secMatcher, highlight);
+    }
+    return label;
+}
+function getURLPrefix(ui) {
+    var urlPrefix="";
+    if (useModuleDirectories) {
+        var slash = "/";
+        if (ui.item.category === catModules) {
+            return ui.item.l + slash;
+        } else if (ui.item.category === catPackages && ui.item.m) {
+            return ui.item.m + slash;
+        } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) {
+            $.each(packageSearchIndex, function(index, item) {
+                if (item.m && ui.item.p == item.l) {
+                    urlPrefix = item.m + slash;
+                }
+            });
+            return urlPrefix;
+        } else {
+            return urlPrefix;
+        }
+    }
+    return urlPrefix;
+}
+var watermark = 'Search';
+$(function() {
+    $("#search").val('');
+    $("#search").prop("disabled", false);
+    $("#reset").prop("disabled", false);
+    $("#search").val(watermark).addClass('watermark');
+    $("#search").blur(function() {
+        if ($(this).val().length == 0) {
+            $(this).val(watermark).addClass('watermark');
+        }
+    });
+    $("#search").on('click keydown', function() {
+        if ($(this).val() == watermark) {
+            $(this).val('').removeClass('watermark');
+        }
+    });
+    $("#reset").click(function() {
+        $("#search").val('');
+        $("#search").focus();
+    });
+    $("#search").focus();
+    $("#search")[0].setSelectionRange(0, 0);
+});
+$.widget("custom.catcomplete", $.ui.autocomplete, {
+    _create: function() {
+        this._super();
+        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
+    },
+    _renderMenu: function(ul, items) {
+        var rMenu = this,
+                currentCategory = "";
+        rMenu.menu.bindings = $();
+        $.each(items, function(index, item) {
+            var li;
+            if (item.l !== noResult.l && item.category !== currentCategory) {
+                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
+                currentCategory = item.category;
+            }
+            li = rMenu._renderItemData(ul, item);
+            if (item.category) {
+                li.attr("aria-label", item.category + " : " + item.l);
+                li.attr("class", "resultItem");
+            } else {
+                li.attr("aria-label", item.l);
+                li.attr("class", "resultItem");
+            }
+        });
+    },
+    _renderItem: function(ul, item) {
+        var label = "";
+        if (item.category === catModules) {
+            label = getHighlightedText(item.l);
+        } else if (item.category === catPackages) {
+            label = (item.m)
+                    ? getHighlightedText(item.m + "/" + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catTypes) {
+            label = (item.p)
+                    ? getHighlightedText(item.p + "." + item.l)
+                    : getHighlightedText(item.l);
+        } else if (item.category === catMembers) {
+            label = getHighlightedText(item.p + "." + (item.c + "." + item.l));
+        } else if (item.category === catSearchTags) {
+            label = getHighlightedText(item.l);
+        } else {
+            label = item.l;
+        }
+        var li = $("<li/>").appendTo(ul);
+        var div = $("<div/>").appendTo(li);
+        if (item.category === catSearchTags) {
+            if (item.d) {
+                div.html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span><br><span class=\"searchTagDescResult\">"
+                                + item.d + "</span><br>");
+            } else {
+                div.html(label + "<span class=\"searchTagHolderResult\"> (" + item.h + ")</span>");
+            }
+        } else {
+            div.html(label);
+        }
+        return li;
+    }
+});
+$(function() {
+    $("#search").catcomplete({
+        minLength: 1,
+        delay: 300,
+        source: function(request, response) {
+            var result = new Array();
+            var presult = new Array();
+            var tresult = new Array();
+            var mresult = new Array();
+            var tgresult = new Array();
+            var secondaryresult = new Array();
+            var displayCount = 0;
+            var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i");
+            camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)");
+            var camelCaseMatcher = new RegExp("^" + camelCaseRegexp);
+            secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
+
+            // Return the nested innermost name from the specified object
+            function nestedName(e) {
+                return e.l.substring(e.l.lastIndexOf(".") + 1);
+            }
+
+            function concatResults(a1, a2) {
+                a1 = a1.concat(a2);
+                a2.length = 0;
+                return a1;
+            }
+
+            if (moduleSearchIndex) {
+                var mdleCount = 0;
+                $.each(moduleSearchIndex, function(index, item) {
+                    item.category = catModules;
+                    if (exactMatcher.test(item.l)) {
+                        result.push(item);
+                        mdleCount++;
+                    } else if (camelCaseMatcher.test(item.l)) {
+                        result.push(item);
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                displayCount = mdleCount;
+                result = concatResults(result, secondaryresult);
+            }
+            if (packageSearchIndex) {
+                var pCount = 0;
+                var pkg = "";
+                $.each(packageSearchIndex, function(index, item) {
+                    item.category = catPackages;
+                    pkg = (item.m)
+                            ? (item.m + "/" + item.l)
+                            : item.l;
+                    if (exactMatcher.test(item.l)) {
+                        presult.push(item);
+                        pCount++;
+                    } else if (camelCaseMatcher.test(pkg)) {
+                        presult.push(item);
+                    } else if (secondaryMatcher.test(pkg)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(presult, secondaryresult));
+                displayCount = (pCount > displayCount) ? pCount : displayCount;
+            }
+            if (typeSearchIndex) {
+                var tCount = 0;
+                $.each(typeSearchIndex, function(index, item) {
+                    item.category = catTypes;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        tresult.push(item);
+                        tCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        tresult.push(item);
+                    } else if (secondaryMatcher.test(item.p + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tresult, secondaryresult));
+                displayCount = (tCount > displayCount) ? tCount : displayCount;
+            }
+            if (memberSearchIndex) {
+                var mCount = 0;
+                $.each(memberSearchIndex, function(index, item) {
+                    item.category = catMembers;
+                    var s = nestedName(item);
+                    if (exactMatcher.test(s)) {
+                        mresult.push(item);
+                        mCount++;
+                    } else if (camelCaseMatcher.test(s)) {
+                        mresult.push(item);
+                    } else if (secondaryMatcher.test(item.c + "." + item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(mresult, secondaryresult));
+                displayCount = (mCount > displayCount) ? mCount : displayCount;
+            }
+            if (tagSearchIndex) {
+                var tgCount = 0;
+                $.each(tagSearchIndex, function(index, item) {
+                    item.category = catSearchTags;
+                    if (exactMatcher.test(item.l)) {
+                        tgresult.push(item);
+                        tgCount++;
+                    } else if (secondaryMatcher.test(item.l)) {
+                        secondaryresult.push(item);
+                    }
+                });
+                result = result.concat(concatResults(tgresult, secondaryresult));
+                displayCount = (tgCount > displayCount) ? tgCount : displayCount;
+            }
+            displayCount = (displayCount > 500) ? displayCount : 500;
+            var counter = function() {
+                var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0};
+                var f = function(item) {
+                    count[item.category] += 1;
+                    return (count[item.category] <= displayCount);
+                };
+                return f;
+            }();
+            response(result.filter(counter));
+        },
+        response: function(event, ui) {
+            if (!ui.content.length) {
+                ui.content.push(noResult);
+            } else {
+                $("#search").empty();
+            }
+        },
+        autoFocus: true,
+        position: {
+            collision: "flip"
+        },
+        select: function(event, ui) {
+            if (ui.item.l !== noResult.l) {
+                var url = getURLPrefix(ui);
+                if (ui.item.category === catModules) {
+                    if (useModuleDirectories) {
+                        url += "module-summary.html";
+                    } else {
+                        url = ui.item.l + "-summary.html";
+                    }
+                } else if (ui.item.category === catPackages) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else {
+                    url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
+                    }
+                } else if (ui.item.category === catTypes) {
+                    if (ui.item.url) {
+                        url = ui.item.url;
+                    } else if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.l + ".html";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
+                    }
+                } else if (ui.item.category === catMembers) {
+                    if (ui.item.p === "<Unnamed>") {
+                        url += ui.item.c + ".html" + "#";
+                    } else {
+                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
+                    }
+                    if (ui.item.url) {
+                        url += ui.item.url;
+                    } else {
+                        url += ui.item.l;
+                    }
+                } else if (ui.item.category === catSearchTags) {
+                    url += ui.item.u;
+                }
+                if (top !== window) {
+                    parent.classFrame.location = pathtoroot + url;
+                } else {
+                    window.location.href = pathtoroot + url;
+                }
+                $("#search").focus();
+            }
+        }
+    });
+});
diff --git a/apidocs/2.1.6/serialized-form.html b/apidocs/2.1.6/serialized-form.html
new file mode 100644
index 0000000..da01f2c
--- /dev/null
+++ b/apidocs/2.1.6/serialized-form.html
@@ -0,0 +1,322 @@
+<!DOCTYPE HTML>
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (12) on Mon Aug 12 13:20:58 GMT 2019 -->
+<title>Serialized Form (jakarta.ws.rs-api 2.1.6 API)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="dc.created" content="2019-08-12">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
+<!--[if IE]>
+<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
+<![endif]-->
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-ui.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (jakarta.ws.rs-api 2.1.6 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var pathtoroot = "./";
+var useModuleDirectories = true;
+loadScripts(document, 'script');</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<header role="banner">
+<nav role="navigation">
+<div class="fixedNav">
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a id="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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="navListSearch">
+<li><label for="search">SEARCH:</label>
+<input type="text" id="search" value="search" disabled="disabled">
+<input type="reset" id="reset" value="reset" disabled="disabled">
+</li>
+</ul>
+</div>
+<a id="skip.navbar.top">
+<!--   -->
+</a>
+<!-- ========= END OF TOP NAVBAR ========= -->
+</div>
+<div class="navPadding">&nbsp;</div>
+<script type="text/javascript"><!--
+$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
+//-->
+</script>
+</nav>
+</header>
+<main role="main">
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;javax.ws.rs</h2>
+<ul class="blockList">
+<li class="blockList"><a id="javax.ws.rs.BadRequestException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/BadRequestException.html" title="class in javax.ws.rs">javax.ws.rs.BadRequestException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>7264647684649480265L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ClientErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ClientErrorException</a> extends <a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-4101970664444907990L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ForbiddenException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/ForbiddenException.html" title="class in javax.ws.rs">javax.ws.rs.ForbiddenException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-2740045367479165061L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.InternalServerErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/InternalServerErrorException.html" title="class in javax.ws.rs">javax.ws.rs.InternalServerErrorException</a> extends <a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6515710697540553309L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.NotAcceptableException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/NotAcceptableException.html" title="class in javax.ws.rs">javax.ws.rs.NotAcceptableException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-1476163816796529078L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.NotAllowedException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/NotAllowedException.html" title="class in javax.ws.rs">javax.ws.rs.NotAllowedException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-586776054369626119L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.NotAuthorizedException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/NotAuthorizedException.html" title="class in javax.ws.rs">javax.ws.rs.NotAuthorizedException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-3156040750581929702L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.NotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/NotFoundException.html" title="class in javax.ws.rs">javax.ws.rs.NotFoundException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6820866117511628388L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.NotSupportedException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/NotSupportedException.html" title="class in javax.ws.rs">javax.ws.rs.NotSupportedException</a> extends <a href="javax/ws/rs/ClientErrorException.html" title="class in javax.ws.rs">ClientErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-8286622745725405656L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ProcessingException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs">javax.ws.rs.ProcessingException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-4232431597816056514L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.RedirectionException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/RedirectionException.html" title="class in javax.ws.rs">javax.ws.rs.RedirectionException</a> extends <a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-2584325408291098012L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ServerErrorException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">javax.ws.rs.ServerErrorException</a> extends <a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">WebApplicationException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>4730895276505569556L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.ServiceUnavailableException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/ServiceUnavailableException.html" title="class in javax.ws.rs">javax.ws.rs.ServiceUnavailableException</a> extends <a href="javax/ws/rs/ServerErrorException.html" title="class in javax.ws.rs">ServerErrorException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>3821068205617492633L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.WebApplicationException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/WebApplicationException.html" title="class in javax.ws.rs">javax.ws.rs.WebApplicationException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>8273970399584007146L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>response</h4>
+<pre><a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a> response</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;javax.ws.rs.client</h2>
+<ul class="blockList">
+<li class="blockList"><a id="javax.ws.rs.client.ResponseProcessingException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/client/ResponseProcessingException.html" title="class in javax.ws.rs.client">javax.ws.rs.client.ResponseProcessingException</a> extends <a href="javax/ws/rs/ProcessingException.html" title="class in javax.ws.rs">ProcessingException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-4923161617935731839L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>response</h4>
+<pre><a href="javax/ws/rs/core/Response.html" title="class in javax.ws.rs.core">Response</a> response</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</section>
+</li>
+<li class="blockList">
+<section role="region">
+<h2 title="Package">Package&nbsp;javax.ws.rs.core</h2>
+<ul class="blockList">
+<li class="blockList"><a id="javax.ws.rs.core.MultivaluedHashMap">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">javax.ws.rs.core.MultivaluedHashMap</a> extends <a href="javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a>&lt;<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">K</a>,&#8203;<a href="javax/ws/rs/core/MultivaluedHashMap.html" title="type parameter in MultivaluedHashMap">V</a>&gt; implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-6052320403766368902L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.core.NoContentException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/core/NoContentException.html" title="class in javax.ws.rs.core">javax.ws.rs.core.NoContentException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink">IOException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>-3082577759787473245L</dd>
+</dl>
+</li>
+<li class="blockList"><a id="javax.ws.rs.core.UriBuilderException">
+<!--   -->
+</a>
+<h3>Class <a href="javax/ws/rs/core/UriBuilderException.html" title="class in javax.ws.rs.core">javax.ws.rs.core.UriBuilderException</a> extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/RuntimeException.html?is-external=true" title="class or interface in java.lang" class="externalLink">RuntimeException</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>956255913370721193L</dd>
+</dl>
+</li>
+</ul>
+</section>
+</li>
+</ul>
+</div>
+</main>
+<footer role="contentinfo">
+<nav role="navigation">
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a id="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a id="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="index.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-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>
+<a id="skip.navbar.bottom">
+<!--   -->
+</a>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</nav>
+<p class="legalCopy"><small>Copyright (c) 2019 Eclipse Foundation.                             Licensed under <a href="resources/EFSL.html">Eclipse Foundation                             Specification License</a>.</small></p>
+</footer>
+</body>
+</html>
diff --git a/apidocs/2.1.6/stylesheet.css b/apidocs/2.1.6/stylesheet.css
new file mode 100644
index 0000000..e46e282
--- /dev/null
+++ b/apidocs/2.1.6/stylesheet.css
@@ -0,0 +1,879 @@
+/* 
+ * Javadoc style sheet
+ */
+
+@import url('resources/fonts/dejavu.css');
+
+/*
+ * Styles for individual HTML elements.
+ *
+ * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
+ * HTML element throughout the page.
+ */
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+}
+iframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    width:100%;
+    overflow-y:scroll;
+    border:none;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[href]:hover, a[href]:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:before, a[name]:target, a[id]:before, a[id]:target {
+    content:"";
+    display:inline-block;
+    position:relative;
+    padding-top:129px;
+    margin-top:-129px;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+button {
+    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size: 14px;
+}
+/*
+ * Styles for HTML generated by javadoc.
+ *
+ * These are style classes that are used by the standard doclet to generate HTML documentation.
+ */
+
+/*
+ * Styles for document title and copyright.
+ */
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+ * Styles for navigation bar.
+ */
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.navPadding {
+    padding-top: 107px;
+}
+.fixedNav {
+    position:fixed;
+    width:100%;
+    z-index:999;
+    background-color:#ffffff;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+.subNav .navList {
+    padding-top:5px;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch {
+    float:right;
+    margin:0 0 0 0;
+    padding:0;
+}
+ul.navListSearch li {
+    list-style:none;
+    float:right;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.navListSearch li label {
+    position:relative;
+    right:-16px;
+}
+ul.subNavList li {
+    list-style:none;
+    float:left;
+    padding-top:10px;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+ * Styles for page header and footer.
+ */
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexNav {
+    position:relative;
+    font-size:12px;
+    background-color:#dee3e9;
+}
+.indexNav ul {
+    margin-top:0;
+    padding:5px;
+}
+.indexNav ul li {
+    display:inline;
+    list-style-type:none;
+    padding-right:10px;
+    text-transform:uppercase;
+}
+.indexNav h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+ * Styles for headings.
+ */
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+ * Styles for page layout containers.
+ */
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
+.allClassesContainer, .allPackagesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+ * Styles for lists.
+ */
+li.circle {
+    list-style:circle;
+}
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+ * Styles for tables.
+ */
+.overviewSummary table, .memberSummary table, .typeSummary table, .useSummary table, .constantsSummary table, .deprecatedSummary table,
+.requiresSummary table, .packagesSummary table, .providesSummary table, .usesSummary table {
+    width:100%;
+    border-spacing:0;
+    border-left:1px solid #EEE;
+    border-right:1px solid #EEE;
+    border-bottom:1px solid #EEE;
+}
+.overviewSummary table, .memberSummary table, .requiresSummary table, .packagesSummary table, .providesSummary table, .usesSummary table {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
+.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.constantsSummary caption a:link, .constantsSummary caption a:visited,
+.useSummary caption a:link, .useSummary caption a:visited {
+    color:#1f389c;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.deprecatedSummary caption a:link,
+.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
+.usesSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
+.usesSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
+.usesSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.deprecatedSummary caption a:visited,
+.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
+.usesSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
+.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
+.usesSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
+.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.overviewSummary [role=tablist] button, .memberSummary [role=tablist] button,
+.typeSummary [role=tablist] button, .packagesSummary [role=tablist] button {
+   border: none;
+   cursor: pointer;
+   padding: 5px 12px 7px 12px;
+   font-weight: bold;
+   margin-right: 3px;
+}
+.overviewSummary [role=tablist] .activeTableTab, .memberSummary [role=tablist] .activeTableTab,
+.typeSummary [role=tablist] .activeTableTab, .packagesSummary [role=tablist] .activeTableTab {
+   background: #F8981D;
+   color: #253441;
+}
+.overviewSummary [role=tablist] .tableTab, .memberSummary [role=tablist] .tableTab,
+.typeSummary [role=tablist] .tableTab, .packagesSummary [role=tablist] .tableTab {
+   background: #4D7A97;
+   color: #FFFFFF;
+}
+.rowColor th, .altColor th {
+    font-weight:normal;
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td,
+.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
+.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
+.constantsSummary td {
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
+.packagesSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    font-size:13px;
+}
+td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
+    font-size:13px;
+}
+.constantsSummary th, .packagesSummary th {
+    font-size:13px;
+}
+.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
+.providesSummary td.colLast {
+    white-space:normal;
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.requiresSummary td.colFirst, .requiresSummary th.colFirst,
+.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
+.usesSummary td.colFirst, .usesSummary th.colFirst,
+.providesSummary td.colFirst, .providesSummary th.colFirst,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
+.typeSummary td.colFirst, .typeSummary th.colFirst {
+    vertical-align:top;
+}
+.packagesSummary th.colLast, .packagesSummary td.colLast {
+    white-space:normal;
+}
+td.colFirst a:link, td.colFirst a:visited,
+td.colSecond a:link, td.colSecond a:visited,
+th.colFirst a:link, th.colFirst a:visited,
+th.colSecond a:link, th.colSecond a:visited,
+th.colConstructorName a:link, th.colConstructorName a:visited,
+th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, 
+.constantValuesContainer td a:link, .constantValuesContainer td a:visited, 
+.allClassesContainer td a:link, .allClassesContainer td a:visited, 
+.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor, .altColor th {
+    background-color:#FFFFFF;
+}
+.rowColor, .rowColor th {
+    background-color:#EEEEEF;
+}
+/*
+ * Styles for contents.
+ */
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+td.colLast div {
+    padding-top:0px;
+}
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+ * Styles for formatting effect.
+ */
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
+.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
+.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
+.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+.deprecationBlock {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    border-style:solid;
+    border-width:thin;
+    border-radius:10px;
+    padding:10px;
+    margin-bottom:10px;
+    margin-right:10px;
+    display:inline-block;
+}
+div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+div.contentContainer ul.blockList li.blockList h2 {
+    padding-bottom:0px;
+}
+/*
+ * Styles for IFRAME.
+ */
+.mainContainer {
+    margin:0 auto; 
+    padding:0; 
+    height:100%; 
+    width:100%; 
+    position:fixed; 
+    top:0; 
+    left:0;
+}
+.leftContainer {
+    height:100%;
+    position:fixed;
+    width:320px;
+}
+.leftTop {
+    position:relative;
+    float:left;
+    width:315px;
+    top:0;
+    left:0;
+    height:30%;
+    border-right:6px solid #ccc;
+    border-bottom:6px solid #ccc;
+}
+.leftBottom {
+    position:relative;
+    float:left;
+    width:315px;
+    bottom:0;
+    left:0;
+    height:70%;
+    border-right:6px solid #ccc;
+    border-top:1px solid #000;
+}
+.rightContainer {
+    position:absolute;
+    left:320px;
+    top:0;
+    bottom:0;
+    height:100%;
+    right:0;
+    border-left:1px solid #000;
+}
+.rightIframe {
+    margin:0;
+    padding:0;
+    height:100%;
+    right:30px;
+    width:100%;
+    overflow:visible;
+    margin-bottom:30px;
+}
+/*
+ * Styles specific to HTML5 elements.
+ */
+main, nav, header, footer, section {
+    display:block;
+}
+/*
+ * Styles for javadoc search.
+ */
+.ui-autocomplete-category {
+    font-weight:bold;
+    font-size:15px;
+    padding:7px 0 7px 3px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+}
+.resultItem {
+    font-size:13px;
+}
+.ui-autocomplete {
+    max-height:85%;
+    max-width:65%;
+    overflow-y:scroll;
+    overflow-x:scroll;
+    white-space:nowrap;
+    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
+}
+ul.ui-autocomplete {
+    position:fixed;
+    z-index:999999;
+}
+ul.ui-autocomplete  li {
+    float:left;
+    clear:both;
+    width:100%;
+}
+.resultHighlight {
+    font-weight:bold;
+}
+#search {
+    background-image:url('resources/glass.png');
+    background-size:13px;
+    background-repeat:no-repeat;
+    background-position:2px 3px;
+    padding-left:20px;
+    position:relative;
+    right:-18px;
+    width:400px;
+}
+#reset {
+    background-color: rgb(255,255,255);
+    background-image:url('resources/x.png');
+    background-position:center;
+    background-repeat:no-repeat;
+    background-size:12px;
+    border:0 none;
+    width:16px;
+    height:17px;
+    position:relative;
+    left:-4px;
+    top:-4px;
+    font-size:0px;
+}
+.watermark {
+    color:#545454;
+}
+.searchTagDescResult {
+    font-style:italic;
+    font-size:11px;
+}
+.searchTagHolderResult {
+    font-style:italic;
+    font-size:12px;
+}
+.searchTagResult:before, .searchTagResult:target {
+    color:red;
+}
+.moduleGraph span {
+    display:none;
+    position:absolute;
+}
+.moduleGraph:hover span {
+    display:block;
+    margin: -100px 0 0 100px;
+    z-index: 1;
+}
+.methodSignature {
+    white-space:normal;
+}
+
+/*
+ * Styles for user-provided tables.
+ *
+ * borderless:
+ *      No borders, vertical margins, styled caption.
+ *      This style is provided for use with existing doc comments.
+ *      In general, borderless tables should not be used for layout purposes.
+ *
+ * plain:
+ *      Plain borders around table and cells, vertical margins, styled caption.
+ *      Best for small tables or for complex tables for tables with cells that span
+ *      rows and columns, when the "striped" style does not work well.
+ *
+ * striped:
+ *      Borders around the table and vertical borders between cells, striped rows,
+ *      vertical margins, styled caption.
+ *      Best for tables that have a header row, and a body containing a series of simple rows.
+ */
+
+table.borderless,
+table.plain,
+table.striped {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+table.borderless > caption,
+table.plain > caption,
+table.striped > caption {
+    font-weight: bold;
+    font-size: smaller;
+}
+table.borderless th, table.borderless td,
+table.plain th, table.plain td,
+table.striped th, table.striped td {
+    padding: 2px 5px;
+}
+table.borderless,
+table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
+table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
+    border: none;
+}
+table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
+    background-color: transparent;
+}
+table.plain {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
+    background-color: transparent;
+}
+table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
+table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
+    border: 1px solid black;
+}
+table.striped {
+    border-collapse: collapse;
+    border: 1px solid black;
+}
+table.striped > thead {
+    background-color: #E3E3E3;
+}
+table.striped > thead > tr > th, table.striped > thead > tr > td {
+    border: 1px solid black;
+}
+table.striped > tbody > tr:nth-child(even) {
+    background-color: #EEE
+}
+table.striped > tbody > tr:nth-child(odd) {
+    background-color: #FFF
+}
+table.striped > tbody > tr > th, table.striped > tbody > tr > td {
+    border-left: 1px solid black;
+    border-right: 1px solid black;
+}
+table.striped > tbody > tr > th {
+    font-weight: normal;
+}
diff --git a/apidocs/2.1.6/type-search-index.js b/apidocs/2.1.6/type-search-index.js
new file mode 100644
index 0000000..dcfd6e8
--- /dev/null
+++ b/apidocs/2.1.6/type-search-index.js
@@ -0,0 +1 @@
+typeSearchIndex = [{"p":"javax.ws.rs.core","l":"AbstractMultivaluedMap"},{"l":"All Classes","url":"allclasses-index.html"},{"p":"javax.ws.rs.core","l":"Application"},{"p":"javax.ws.rs","l":"ApplicationPath"},{"p":"javax.ws.rs.client","l":"AsyncInvoker"},{"p":"javax.ws.rs.container","l":"AsyncResponse"},{"p":"javax.ws.rs","l":"BadRequestException"},{"p":"javax.ws.rs","l":"BeanParam"},{"p":"javax.ws.rs.client","l":"Invocation.Builder"},{"p":"javax.ws.rs.core","l":"Link.Builder"},{"p":"javax.ws.rs.sse","l":"OutboundSseEvent.Builder"},{"p":"javax.ws.rs.sse","l":"SseEventSource.Builder"},{"p":"javax.ws.rs.core","l":"CacheControl"},{"p":"javax.ws.rs.client","l":"Client"},{"p":"javax.ws.rs.client","l":"ClientBuilder"},{"p":"javax.ws.rs","l":"ClientErrorException"},{"p":"javax.ws.rs.client","l":"ClientRequestContext"},{"p":"javax.ws.rs.client","l":"ClientRequestFilter"},{"p":"javax.ws.rs.client","l":"ClientResponseContext"},{"p":"javax.ws.rs.client","l":"ClientResponseFilter"},{"p":"javax.ws.rs.container","l":"CompletionCallback"},{"p":"javax.ws.rs.client","l":"CompletionStageRxInvoker"},{"p":"javax.ws.rs.core","l":"Configurable"},{"p":"javax.ws.rs.core","l":"Configuration"},{"p":"javax.ws.rs.container","l":"ConnectionCallback"},{"p":"javax.ws.rs","l":"ConstrainedTo"},{"p":"javax.ws.rs","l":"Consumes"},{"p":"javax.ws.rs.container","l":"ContainerRequestContext"},{"p":"javax.ws.rs.container","l":"ContainerRequestFilter"},{"p":"javax.ws.rs.container","l":"ContainerResponseContext"},{"p":"javax.ws.rs.container","l":"ContainerResponseFilter"},{"p":"javax.ws.rs.core","l":"Context"},{"p":"javax.ws.rs.ext","l":"ContextResolver"},{"p":"javax.ws.rs.core","l":"Cookie"},{"p":"javax.ws.rs","l":"CookieParam"},{"p":"javax.ws.rs","l":"DefaultValue"},{"p":"javax.ws.rs","l":"DELETE"},{"p":"javax.ws.rs.container","l":"DynamicFeature"},{"p":"javax.ws.rs","l":"Encoded"},{"p":"javax.ws.rs.client","l":"Entity"},{"p":"javax.ws.rs.core","l":"EntityTag"},{"p":"javax.ws.rs.ext","l":"ExceptionMapper"},{"p":"javax.ws.rs.core","l":"Response.Status.Family"},{"p":"javax.ws.rs.core","l":"Feature"},{"p":"javax.ws.rs.core","l":"FeatureContext"},{"p":"javax.ws.rs","l":"ForbiddenException"},{"p":"javax.ws.rs.core","l":"Form"},{"p":"javax.ws.rs","l":"FormParam"},{"p":"javax.ws.rs.core","l":"GenericEntity"},{"p":"javax.ws.rs.core","l":"GenericType"},{"p":"javax.ws.rs","l":"GET"},{"p":"javax.ws.rs","l":"HEAD"},{"p":"javax.ws.rs.ext","l":"RuntimeDelegate.HeaderDelegate"},{"p":"javax.ws.rs","l":"HeaderParam"},{"p":"javax.ws.rs.core","l":"HttpHeaders"},{"p":"javax.ws.rs","l":"HttpMethod"},{"p":"javax.ws.rs.sse","l":"InboundSseEvent"},{"p":"javax.ws.rs.ext","l":"InterceptorContext"},{"p":"javax.ws.rs","l":"InternalServerErrorException"},{"p":"javax.ws.rs.client","l":"Invocation"},{"p":"javax.ws.rs.client","l":"InvocationCallback"},{"p":"javax.ws.rs.core","l":"Link.JaxbAdapter"},{"p":"javax.ws.rs.core","l":"Link.JaxbLink"},{"p":"javax.ws.rs.ext","l":"ParamConverter.Lazy"},{"p":"javax.ws.rs.core","l":"Link"},{"p":"javax.ws.rs","l":"MatrixParam"},{"p":"javax.ws.rs.core","l":"MediaType"},{"p":"javax.ws.rs.ext","l":"MessageBodyReader"},{"p":"javax.ws.rs.ext","l":"MessageBodyWriter"},{"p":"javax.ws.rs.core","l":"MultivaluedHashMap"},{"p":"javax.ws.rs.core","l":"MultivaluedMap"},{"p":"javax.ws.rs","l":"NameBinding"},{"p":"javax.ws.rs.core","l":"NewCookie"},{"p":"javax.ws.rs.core","l":"NoContentException"},{"p":"javax.ws.rs","l":"NotAcceptableException"},{"p":"javax.ws.rs","l":"NotAllowedException"},{"p":"javax.ws.rs","l":"NotAuthorizedException"},{"p":"javax.ws.rs","l":"NotFoundException"},{"p":"javax.ws.rs","l":"NotSupportedException"},{"p":"javax.ws.rs","l":"OPTIONS"},{"p":"javax.ws.rs.sse","l":"OutboundSseEvent"},{"p":"javax.ws.rs.ext","l":"ParamConverter"},{"p":"javax.ws.rs.ext","l":"ParamConverterProvider"},{"p":"javax.ws.rs","l":"PATCH"},{"p":"javax.ws.rs","l":"Path"},{"p":"javax.ws.rs","l":"PathParam"},{"p":"javax.ws.rs.core","l":"PathSegment"},{"p":"javax.ws.rs","l":"POST"},{"p":"javax.ws.rs.container","l":"PreMatching"},{"p":"javax.ws.rs","l":"Priorities"},{"p":"javax.ws.rs","l":"ProcessingException"},{"p":"javax.ws.rs","l":"Produces"},{"p":"javax.ws.rs.ext","l":"Provider"},{"p":"javax.ws.rs.ext","l":"Providers"},{"p":"javax.ws.rs","l":"PUT"},{"p":"javax.ws.rs","l":"QueryParam"},{"p":"javax.ws.rs.ext","l":"ReaderInterceptor"},{"p":"javax.ws.rs.ext","l":"ReaderInterceptorContext"},{"p":"javax.ws.rs","l":"RedirectionException"},{"p":"javax.ws.rs.core","l":"Request"},{"p":"javax.ws.rs.container","l":"ResourceContext"},{"p":"javax.ws.rs.container","l":"ResourceInfo"},{"p":"javax.ws.rs.core","l":"Response"},{"p":"javax.ws.rs.core","l":"Response.ResponseBuilder"},{"p":"javax.ws.rs.client","l":"ResponseProcessingException"},{"p":"javax.ws.rs.ext","l":"RuntimeDelegate"},{"p":"javax.ws.rs","l":"RuntimeType"},{"p":"javax.ws.rs.client","l":"RxInvoker"},{"p":"javax.ws.rs.client","l":"RxInvokerProvider"},{"p":"javax.ws.rs.core","l":"SecurityContext"},{"p":"javax.ws.rs","l":"ServerErrorException"},{"p":"javax.ws.rs","l":"ServiceUnavailableException"},{"p":"javax.ws.rs.sse","l":"Sse"},{"p":"javax.ws.rs.sse","l":"SseBroadcaster"},{"p":"javax.ws.rs.sse","l":"SseEvent"},{"p":"javax.ws.rs.sse","l":"SseEventSink"},{"p":"javax.ws.rs.sse","l":"SseEventSource"},{"p":"javax.ws.rs.core","l":"Response.Status"},{"p":"javax.ws.rs.core","l":"Response.StatusType"},{"p":"javax.ws.rs.core","l":"StreamingOutput"},{"p":"javax.ws.rs.container","l":"Suspended"},{"p":"javax.ws.rs.client","l":"SyncInvoker"},{"p":"javax.ws.rs.container","l":"TimeoutHandler"},{"p":"javax.ws.rs.core","l":"UriBuilder"},{"p":"javax.ws.rs.core","l":"UriBuilderException"},{"p":"javax.ws.rs.core","l":"UriInfo"},{"p":"javax.ws.rs.core","l":"Variant"},{"p":"javax.ws.rs.core","l":"Variant.VariantListBuilder"},{"p":"javax.ws.rs","l":"WebApplicationException"},{"p":"javax.ws.rs.client","l":"WebTarget"},{"p":"javax.ws.rs.ext","l":"WriterInterceptor"},{"p":"javax.ws.rs.ext","l":"WriterInterceptorContext"}]
\ No newline at end of file
diff --git a/apidocs/2.1.6/type-search-index.zip b/apidocs/2.1.6/type-search-index.zip
new file mode 100644
index 0000000..747a5c7
--- /dev/null
+++ b/apidocs/2.1.6/type-search-index.zip
Binary files differ
diff --git a/apidocs/index.md b/apidocs/index.md
new file mode 100644
index 0000000..57d4231
--- /dev/null
+++ b/apidocs/index.md
@@ -0,0 +1,6 @@
+# Jakarta RESTful Web Services API
+
+## Current Version
+
+* [Jakarta RESTful Web Services 2.1.6](/jaxrs-api/apidocs/2.1.6/)
+
