 ***************************************************************************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
 * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
 * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
 * with the License.  You may obtain a copy of the License at                                                              *
 *                                                                                                                         *
 *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
 *                                                                                                                         *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
 * specific language governing permissions and limitations under the License.                                              *
 ***************************************************************************************************************************
aaa
ab
abbr
abbrev
accessor
addr
admin
andandand
anywhereville
apache
api
appendable
apr
arg
args
attr
aug
auth
barack
barney
barry
batchfile
baz
bbb
bc
bcode
bcode
bdi
bdo
billy
birthdate
blockquote
blog
bm
bognar
br
byteranges
ca
caceres
cacheable
callable
cc
ce
centric
cert
cf
charset
chrome
chunked
ck
classloader
classpath
cloudant
cm
cmd
codec
codepoint
cognos
col
colgroup
colspan
com
concat
config
configfile
cont
cookbook
coords
costas
covariant
cp
crawford
cs
css
csv
ctx
cv
da
danish
datalist
dataset
datatype
dd
dec
decapitalize
def
deflate
del
demoted
deserialize
dfn
differentiable
dir
discoverable
discriminator
div
dl
doclink
docs
doctree
doctype
doe
ds
dt
duper
dvi
dyna
em
en
endian
enum
enums
envfile
etag
ethel
ext
extlink
favicon
feb
fico
fieldset
figcaption
filesystem
firefox
firewall
fixarray
fixext
fixint
fixmap
fixnum
fixstr
foo
foo
foobar
fred
fín
gatewayed
gb
gecko
genericized
generics
george
gif
gigabytes
globalizable
globalized
gzip
hashcode
hashmap
hashsums
hostname
hr
href
hreflang
htdocs
htm
html
htmldoc
http
httpclient
httpcore
httpmime
https
hussein
hv
hyperlink
hyperlinks
iframe
img
impl
inbound
init
instanceof
int
int
intercepters
interceptors
introspectable
introspector
io
iri
iso
iter
iterable
iterables
ja
jackson
jan
jane
janesmith
javadoc
javadocs
javascript
jc
jd
jena
jetty
jf
jk
jm
jma
jmp
jp
jpeg
js
jsa
jsf
jsm
json
jss
jt
jul
jun
juneau
juneaubp
juno
jv
kbd
keygen
l
lang
lax
li
lib
libwww
lifecycle
locales
localhost
logo
lossless
losslessly
lowercase
lowercased
ls
lucy
maori
marshalled
marshalling
maxage
mertz
metadata
metamodel
metamodels
metas
mf
mi
microservice
microservices
min
mk
mkdirs
mod
mozilla
mpeg
msg
msgpack
multi
multipart
mv
myarg
mybeans
mydiv
mydocs
myentry
myform
myheader
mymethod
myobject
myparam
myproperty
myproxy
myresource
mystyles
mytable
mytype
myurl
namespace
namespaces
nav
neg
nls
noscript
nosniff
nov
nowrap
ns
nutshell
obama
oct
octets
ol
onload
onmouseover
op
optgroup
ordinality
org
orig
ororor
outbound
outerdata
overridable
param
params
parsable
payload
pb
pg
pl
playback
png
pojo
pos
pp
pragma
pre
prev
println
properties
proxies
proxy
ps
pseudonym
pseudonyms
pw
qs
queryable
qvalue
qvalues
rb
rc
rd
rdf
readonly
reconstitute
ref
referer
rel
relativize
relativized
relativizes
remoteable
req
resp
retryable
revalidate
revalidating
ricky
rp
rs
rt
rtc
rv
samp
scratchpad
scratchpads
se
seealso
seemlessly
seg
sept
serializable
serializer
serializers
servlet
servlets
sf
sic
sorta
souped
spec
specs
sq
sql
src
ss
ssl
ssv
stacktrace
stateless
str
streamable
struct
stylesheet
stylesheets
subclassed
subdirectories
sublink
subpackages
subpath
subtype
subtypes
superclasses
superinterfaces
swappable
tbody
td
tee
templating
testcases
textarea
tfoot
th
thead
threadid
throwables
thu
timestamp
timezone
tm
tomcat
tooltips
tr
traversable
tsv
tumblr
txt
typecasting
ua
uint
uk
ul
ultra
un
uncacheable
unencoded
unicode
unswap
uon
uri
url
urlencoded
urlencoding
us
usemap
username
utf
val
validator
vals
var
vars
waitangi
wbr
webmaster
website
websocket
writeable
ws
wss
www
xa
xc
xhtml
xml
xmlabbrev
xmlbase
xmlns
xs
xt
xv
xxx
xyz
xyzzy
yyy
yyyy
zip
zipped
zzz
mylink
myimage
myalert
onclick
popup
hyperlinked
bpx
bpi
tooltip
templated
marshaller
dto
svl
mantra
strived
protobuf
maven
configurability
navlinks
fav
transactional
rollback
enablement
stacktraces
timezones
beanp
irs
&emsp;
bjava
bconsole
bxml
bini
buon
bcode
burlenc
