You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2023/05/30 14:41:53 UTC

[cayenne-website] branch asf-site updated: 4.2 docs

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/cayenne-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 34513cf4b 4.2 docs
34513cf4b is described below

commit 34513cf4b65b303c2ea3ef64bf6122ce4eb1754b
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Tue May 30 17:41:33 2023 +0300

    4.2 docs
---
 docs/4.2/api/allclasses-index.html                 |   13 +-
 docs/4.2/api/allclasses.html                       |    9 +-
 docs/4.2/api/allpackages-index.html                |   13 +-
 docs/4.2/api/constant-values.html                  |   13 +-
 docs/4.2/api/deprecated-list.html                  |   13 +-
 docs/4.2/api/help-doc.html                         |   13 +-
 docs/4.2/api/index-all.html                        |   13 +-
 docs/4.2/api/index.html                            |   15 +-
 docs/4.2/api/jquery/external/jquery/jquery.js      | 1792 +++++++-------------
 .../jquery/{jquery-3.5.1.js => jquery-3.3.1.js}    | 1792 +++++++-------------
 docs/4.2/api/jquery/jquery-migrate-3.0.1.js        |  628 +++++++
 docs/4.2/api/member-search-index.zip               |  Bin 109263 -> 109263 bytes
 docs/4.2/api/org/apache/cayenne/BaseContext.html   |   13 +-
 .../4.2/api/org/apache/cayenne/BaseDataObject.html |   13 +-
 docs/4.2/api/org/apache/cayenne/Cayenne.html       |   13 +-
 .../api/org/apache/cayenne/CayenneDataObject.html  |   13 +-
 .../api/org/apache/cayenne/CayenneException.html   |   13 +-
 .../apache/cayenne/CayenneRuntimeException.html    |   13 +-
 .../org/apache/cayenne/ConfigurationException.html |   13 +-
 docs/4.2/api/org/apache/cayenne/DataChannel.html   |   13 +-
 .../api/org/apache/cayenne/DataChannelFilter.html  |   13 +-
 .../org/apache/cayenne/DataChannelFilterChain.html |   13 +-
 .../org/apache/cayenne/DataChannelListener.html    |   13 +-
 .../org/apache/cayenne/DataChannelQueryFilter.html |   13 +-
 .../cayenne/DataChannelQueryFilterChain.html       |   13 +-
 .../cayenne/DataChannelSyncCallbackAction.html     |   13 +-
 .../org/apache/cayenne/DataChannelSyncFilter.html  |   13 +-
 .../apache/cayenne/DataChannelSyncFilterChain.html |   13 +-
 docs/4.2/api/org/apache/cayenne/DataObject.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/DataRow.html       |   13 +-
 .../org/apache/cayenne/DeleteDenyException.html    |   13 +-
 .../api/org/apache/cayenne/EmbeddableObject.html   |   13 +-
 .../org/apache/cayenne/ExtendedEnumeration.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/Fault.html         |   13 +-
 .../org/apache/cayenne/FaultFailureException.html  |   13 +-
 .../api/org/apache/cayenne/HybridDataObject.html   |   13 +-
 .../api/org/apache/cayenne/LifecycleListener.html  |   13 +-
 docs/4.2/api/org/apache/cayenne/ObjectContext.html |   13 +-
 docs/4.2/api/org/apache/cayenne/ObjectId.html      |   13 +-
 .../api/org/apache/cayenne/PersistenceState.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/Persistent.html    |   13 +-
 .../api/org/apache/cayenne/PersistentObject.html   |   13 +-
 .../api/org/apache/cayenne/ProcedureResult.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/QueryResponse.html |   13 +-
 docs/4.2/api/org/apache/cayenne/QueryResult.html   |   13 +-
 .../api/org/apache/cayenne/QueryResultItem.html    |   13 +-
 .../org/apache/cayenne/ResultBatchIterator.html    |   13 +-
 .../4.2/api/org/apache/cayenne/ResultIterator.html |   13 +-
 .../org/apache/cayenne/ResultIteratorCallback.html |   13 +-
 docs/4.2/api/org/apache/cayenne/Validating.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/ValueHolder.html   |   13 +-
 .../org/apache/cayenne/access/AttributeFault.html  |   13 +-
 .../apache/cayenne/access/ClientServerChannel.html |   13 +-
 .../api/org/apache/cayenne/access/DataContext.html |   13 +-
 .../apache/cayenne/access/DataContextDelegate.html |   13 +-
 .../api/org/apache/cayenne/access/DataDomain.html  |   13 +-
 .../api/org/apache/cayenne/access/DataNode.html    |   13 +-
 .../org/apache/cayenne/access/DataRowStore.html    |   13 +-
 .../apache/cayenne/access/DataRowStoreFactory.html |   13 +-
 .../api/org/apache/cayenne/access/DbGenerator.html |   13 +-
 .../cayenne/access/DefaultDataRowStoreFactory.html |   13 +-
 .../access/DefaultObjectMapRetainStrategy.html     |   13 +-
 .../cayenne/access/DomainStoppedException.html     |   13 +-
 .../cayenne/access/IncrementalFaultList.html       |   13 +-
 .../access/LegacyDataDomainFlushAction.html        |   13 +-
 .../access/LegacyDataDomainFlushActionFactory.html |   13 +-
 .../apache/cayenne/access/NoSyncObjectStore.html   |   13 +-
 .../api/org/apache/cayenne/access/ObjectDiff.html  |   13 +-
 .../cayenne/access/ObjectMapRetainStrategy.html    |   13 +-
 .../api/org/apache/cayenne/access/ObjectStore.html |   13 +-
 .../cayenne/access/ObjectStoreGraphDiff.html       |   13 +-
 .../org/apache/cayenne/access/OperationHints.html  |   13 +-
 .../apache/cayenne/access/OperationObserver.html   |   13 +-
 .../cayenne/access/OptimisticLockException.html    |   13 +-
 .../api/org/apache/cayenne/access/QueryEngine.html |   13 +-
 .../api/org/apache/cayenne/access/ToManyList.html  |   13 +-
 .../org/apache/cayenne/access/ToManyListFault.html |   13 +-
 .../org/apache/cayenne/access/ToManyMapFault.html  |   13 +-
 .../api/org/apache/cayenne/access/ToManySet.html   |   13 +-
 .../org/apache/cayenne/access/ToManySetFault.html  |   13 +-
 .../api/org/apache/cayenne/access/ToOneFault.html  |   13 +-
 .../cayenne/access/class-use/AttributeFault.html   |   13 +-
 .../access/class-use/ClientServerChannel.html      |   13 +-
 .../cayenne/access/class-use/DataContext.html      |   13 +-
 .../access/class-use/DataContextDelegate.html      |   13 +-
 .../cayenne/access/class-use/DataDomain.html       |   13 +-
 .../apache/cayenne/access/class-use/DataNode.html  |   13 +-
 .../cayenne/access/class-use/DataRowStore.html     |   13 +-
 .../access/class-use/DataRowStoreFactory.html      |   13 +-
 .../cayenne/access/class-use/DbGenerator.html      |   13 +-
 .../class-use/DefaultDataRowStoreFactory.html      |   13 +-
 .../class-use/DefaultObjectMapRetainStrategy.html  |   13 +-
 .../access/class-use/DomainStoppedException.html   |   13 +-
 .../access/class-use/IncrementalFaultList.html     |   13 +-
 .../class-use/LegacyDataDomainFlushAction.html     |   13 +-
 .../LegacyDataDomainFlushActionFactory.html        |   13 +-
 .../access/class-use/NoSyncObjectStore.html        |   13 +-
 .../cayenne/access/class-use/ObjectDiff.html       |   13 +-
 .../access/class-use/ObjectMapRetainStrategy.html  |   13 +-
 .../cayenne/access/class-use/ObjectStore.html      |   13 +-
 .../access/class-use/ObjectStoreGraphDiff.html     |   13 +-
 .../cayenne/access/class-use/OperationHints.html   |   13 +-
 .../access/class-use/OperationObserver.html        |   13 +-
 .../access/class-use/OptimisticLockException.html  |   13 +-
 .../cayenne/access/class-use/QueryEngine.html      |   13 +-
 .../cayenne/access/class-use/ToManyList.html       |   13 +-
 .../cayenne/access/class-use/ToManyListFault.html  |   13 +-
 .../cayenne/access/class-use/ToManyMapFault.html   |   13 +-
 .../apache/cayenne/access/class-use/ToManySet.html |   13 +-
 .../cayenne/access/class-use/ToManySetFault.html   |   13 +-
 .../cayenne/access/class-use/ToOneFault.html       |   13 +-
 .../access/dbsync/BaseSchemaUpdateStrategy.html    |   13 +-
 .../access/dbsync/CreateIfNoSchemaStrategy.html    |   13 +-
 .../dbsync/DefaultSchemaUpdateStrategyFactory.html |   13 +-
 .../access/dbsync/SchemaUpdateStrategy.html        |   13 +-
 .../access/dbsync/SchemaUpdateStrategyFactory.html |   13 +-
 .../access/dbsync/SkipSchemaUpdateStrategy.html    |   13 +-
 .../ThrowOnPartialOrCreateSchemaStrategy.html      |   13 +-
 .../dbsync/ThrowOnPartialSchemaStrategy.html       |   13 +-
 .../dbsync/class-use/BaseSchemaUpdateStrategy.html |   13 +-
 .../dbsync/class-use/CreateIfNoSchemaStrategy.html |   13 +-
 .../DefaultSchemaUpdateStrategyFactory.html        |   13 +-
 .../dbsync/class-use/SchemaUpdateStrategy.html     |   13 +-
 .../class-use/SchemaUpdateStrategyFactory.html     |   13 +-
 .../dbsync/class-use/SkipSchemaUpdateStrategy.html |   13 +-
 .../ThrowOnPartialOrCreateSchemaStrategy.html      |   13 +-
 .../class-use/ThrowOnPartialSchemaStrategy.html    |   13 +-
 .../cayenne/access/dbsync/package-summary.html     |   13 +-
 .../apache/cayenne/access/dbsync/package-tree.html |   13 +-
 .../apache/cayenne/access/dbsync/package-use.html  |   13 +-
 .../apache/cayenne/access/event/SnapshotEvent.html |   13 +-
 .../access/event/SnapshotEventListener.html        |   13 +-
 .../access/event/class-use/SnapshotEvent.html      |   13 +-
 .../event/class-use/SnapshotEventListener.html     |   13 +-
 .../cayenne/access/event/package-summary.html      |   13 +-
 .../apache/cayenne/access/event/package-tree.html  |   13 +-
 .../apache/cayenne/access/event/package-use.html   |   13 +-
 .../access/flush/DataDomainFlushAction.html        |   13 +-
 .../access/flush/DataDomainFlushActionFactory.html |   13 +-
 ...ataDomainFlushAction.PhantomDbRowOpCleaner.html |   13 +-
 .../access/flush/DefaultDataDomainFlushAction.html |   13 +-
 .../flush/DefaultDataDomainFlushActionFactory.html |   13 +-
 .../apache/cayenne/access/flush/EffectiveOpId.html |   13 +-
 .../flush/class-use/DataDomainFlushAction.html     |   13 +-
 .../class-use/DataDomainFlushActionFactory.html    |   13 +-
 ...ataDomainFlushAction.PhantomDbRowOpCleaner.html |   13 +-
 .../class-use/DefaultDataDomainFlushAction.html    |   13 +-
 .../DefaultDataDomainFlushActionFactory.html       |   13 +-
 .../access/flush/class-use/EffectiveOpId.html      |   13 +-
 .../access/flush/operation/BaseDbRowOp.html        |   13 +-
 .../cayenne/access/flush/operation/DbRowOp.html    |   13 +-
 .../access/flush/operation/DbRowOpMerger.html      |   13 +-
 .../access/flush/operation/DbRowOpSorter.html      |   13 +-
 .../access/flush/operation/DbRowOpType.html        |   13 +-
 .../access/flush/operation/DbRowOpVisitor.html     |   13 +-
 .../flush/operation/DbRowOpWithQualifier.html      |   13 +-
 .../access/flush/operation/DbRowOpWithValues.html  |   13 +-
 .../DefaultDbRowOpSorter.DbRowComparator.html      |   13 +-
 .../DefaultDbRowOpSorter.DbRowTypeVisitor.html     |   13 +-
 .../flush/operation/DefaultDbRowOpSorter.html      |   13 +-
 .../access/flush/operation/DeleteDbRowOp.html      |   13 +-
 .../flush/operation/DeleteInsertDbRowOp.html       |   13 +-
 .../flush/operation/GraphBasedDbRowOpSorter.html   |   13 +-
 .../access/flush/operation/InsertDbRowOp.html      |   13 +-
 .../access/flush/operation/OpIdFactory.html        |   13 +-
 .../cayenne/access/flush/operation/Qualifier.html  |   13 +-
 .../access/flush/operation/UpdateDbRowOp.html      |   13 +-
 .../cayenne/access/flush/operation/Values.html     |   13 +-
 .../flush/operation/class-use/BaseDbRowOp.html     |   13 +-
 .../access/flush/operation/class-use/DbRowOp.html  |   13 +-
 .../flush/operation/class-use/DbRowOpMerger.html   |   13 +-
 .../flush/operation/class-use/DbRowOpSorter.html   |   13 +-
 .../flush/operation/class-use/DbRowOpType.html     |   13 +-
 .../flush/operation/class-use/DbRowOpVisitor.html  |   13 +-
 .../operation/class-use/DbRowOpWithQualifier.html  |   13 +-
 .../operation/class-use/DbRowOpWithValues.html     |   13 +-
 .../DefaultDbRowOpSorter.DbRowComparator.html      |   13 +-
 .../DefaultDbRowOpSorter.DbRowTypeVisitor.html     |   13 +-
 .../operation/class-use/DefaultDbRowOpSorter.html  |   13 +-
 .../flush/operation/class-use/DeleteDbRowOp.html   |   13 +-
 .../operation/class-use/DeleteInsertDbRowOp.html   |   13 +-
 .../class-use/GraphBasedDbRowOpSorter.html         |   13 +-
 .../flush/operation/class-use/InsertDbRowOp.html   |   13 +-
 .../flush/operation/class-use/OpIdFactory.html     |   13 +-
 .../flush/operation/class-use/Qualifier.html       |   13 +-
 .../flush/operation/class-use/UpdateDbRowOp.html   |   13 +-
 .../access/flush/operation/class-use/Values.html   |   13 +-
 .../access/flush/operation/package-summary.html    |   13 +-
 .../access/flush/operation/package-tree.html       |   13 +-
 .../access/flush/operation/package-use.html        |   13 +-
 .../cayenne/access/flush/package-summary.html      |   13 +-
 .../apache/cayenne/access/flush/package-tree.html  |   13 +-
 .../apache/cayenne/access/flush/package-use.html   |   13 +-
 .../apache/cayenne/access/jdbc/BaseSQLAction.html  |   13 +-
 .../apache/cayenne/access/jdbc/BatchAction.html    |   13 +-
 .../cayenne/access/jdbc/ColumnDescriptor.html      |   13 +-
 .../access/jdbc/ConnectionAwareResultIterator.html |   13 +-
 .../access/jdbc/DistinctResultIterator.html        |   13 +-
 .../apache/cayenne/access/jdbc/EJBQLAction.html    |   13 +-
 .../cayenne/access/jdbc/JDBCResultIterator.html    |   13 +-
 .../cayenne/access/jdbc/LimitResultIterator.html   |   13 +-
 .../cayenne/access/jdbc/ProcedureAction.html       |   13 +-
 .../apache/cayenne/access/jdbc/RowDescriptor.html  |   13 +-
 .../cayenne/access/jdbc/RowDescriptorBuilder.html  |   13 +-
 .../apache/cayenne/access/jdbc/SQLStatement.html   |   13 +-
 .../cayenne/access/jdbc/SQLTemplateAction.html     |   13 +-
 .../cayenne/access/jdbc/SQLTemplateProcessor.html  |   13 +-
 .../apache/cayenne/access/jdbc/SelectAction.html   |   13 +-
 .../access/jdbc/class-use/BaseSQLAction.html       |   13 +-
 .../cayenne/access/jdbc/class-use/BatchAction.html |   13 +-
 .../access/jdbc/class-use/ColumnDescriptor.html    |   13 +-
 .../class-use/ConnectionAwareResultIterator.html   |   13 +-
 .../jdbc/class-use/DistinctResultIterator.html     |   13 +-
 .../cayenne/access/jdbc/class-use/EJBQLAction.html |   13 +-
 .../access/jdbc/class-use/JDBCResultIterator.html  |   13 +-
 .../access/jdbc/class-use/LimitResultIterator.html |   13 +-
 .../access/jdbc/class-use/ProcedureAction.html     |   13 +-
 .../access/jdbc/class-use/RowDescriptor.html       |   13 +-
 .../jdbc/class-use/RowDescriptorBuilder.html       |   13 +-
 .../access/jdbc/class-use/SQLStatement.html        |   13 +-
 .../access/jdbc/class-use/SQLTemplateAction.html   |   13 +-
 .../jdbc/class-use/SQLTemplateProcessor.html       |   13 +-
 .../access/jdbc/class-use/SelectAction.html        |   13 +-
 .../cayenne/access/jdbc/package-summary.html       |   13 +-
 .../apache/cayenne/access/jdbc/package-tree.html   |   13 +-
 .../apache/cayenne/access/jdbc/package-use.html    |   13 +-
 ...faultRowReaderFactory.PostprocessorFactory.html |   13 +-
 .../jdbc/reader/DefaultRowReaderFactory.html       |   13 +-
 .../cayenne/access/jdbc/reader/RowReader.html      |   13 +-
 .../access/jdbc/reader/RowReaderFactory.html       |   13 +-
 ...faultRowReaderFactory.PostprocessorFactory.html |   13 +-
 .../reader/class-use/DefaultRowReaderFactory.html  |   13 +-
 .../access/jdbc/reader/class-use/RowReader.html    |   13 +-
 .../jdbc/reader/class-use/RowReaderFactory.html    |   13 +-
 .../access/jdbc/reader/package-summary.html        |   13 +-
 .../cayenne/access/jdbc/reader/package-tree.html   |   13 +-
 .../cayenne/access/jdbc/reader/package-use.html    |   13 +-
 .../org/apache/cayenne/access/package-summary.html |   13 +-
 .../org/apache/cayenne/access/package-tree.html    |   13 +-
 .../api/org/apache/cayenne/access/package-use.html |   13 +-
 .../cayenne/access/sqlbuilder/BaseBuilder.html     |   13 +-
 .../access/sqlbuilder/ColumnNodeBuilder.html       |   13 +-
 .../cayenne/access/sqlbuilder/DeleteBuilder.html   |   13 +-
 .../access/sqlbuilder/ExpressionNodeBuilder.html   |   13 +-
 .../access/sqlbuilder/FunctionNodeBuilder.html     |   13 +-
 .../cayenne/access/sqlbuilder/InsertBuilder.html   |   13 +-
 .../cayenne/access/sqlbuilder/JoinNodeBuilder.html |   13 +-
 .../apache/cayenne/access/sqlbuilder/JoinType.html |   13 +-
 .../cayenne/access/sqlbuilder/NodeBuilder.html     |   13 +-
 .../cayenne/access/sqlbuilder/NodeTreeVisitor.html |   13 +-
 .../access/sqlbuilder/OrderingNodeBuilder.html     |   13 +-
 .../access/sqlbuilder/QuotingAppendable.html       |   13 +-
 .../cayenne/access/sqlbuilder/SQLBuilder.html      |   13 +-
 .../access/sqlbuilder/SQLGenerationContext.html    |   13 +-
 .../access/sqlbuilder/SQLGenerationVisitor.html    |   13 +-
 .../cayenne/access/sqlbuilder/SelectBuilder.html   |   13 +-
 .../access/sqlbuilder/StringBuilderAppendable.html |   13 +-
 .../access/sqlbuilder/TableNodeBuilder.html        |   13 +-
 .../cayenne/access/sqlbuilder/UpdateBuilder.html   |   13 +-
 .../access/sqlbuilder/ValueNodeBuilder.html        |   13 +-
 .../access/sqlbuilder/class-use/BaseBuilder.html   |   13 +-
 .../sqlbuilder/class-use/ColumnNodeBuilder.html    |   13 +-
 .../access/sqlbuilder/class-use/DeleteBuilder.html |   13 +-
 .../class-use/ExpressionNodeBuilder.html           |   13 +-
 .../sqlbuilder/class-use/FunctionNodeBuilder.html  |   13 +-
 .../access/sqlbuilder/class-use/InsertBuilder.html |   13 +-
 .../sqlbuilder/class-use/JoinNodeBuilder.html      |   13 +-
 .../access/sqlbuilder/class-use/JoinType.html      |   13 +-
 .../access/sqlbuilder/class-use/NodeBuilder.html   |   13 +-
 .../sqlbuilder/class-use/NodeTreeVisitor.html      |   13 +-
 .../sqlbuilder/class-use/OrderingNodeBuilder.html  |   13 +-
 .../sqlbuilder/class-use/QuotingAppendable.html    |   13 +-
 .../access/sqlbuilder/class-use/SQLBuilder.html    |   13 +-
 .../sqlbuilder/class-use/SQLGenerationContext.html |   13 +-
 .../sqlbuilder/class-use/SQLGenerationVisitor.html |   13 +-
 .../access/sqlbuilder/class-use/SelectBuilder.html |   13 +-
 .../class-use/StringBuilderAppendable.html         |   13 +-
 .../sqlbuilder/class-use/TableNodeBuilder.html     |   13 +-
 .../access/sqlbuilder/class-use/UpdateBuilder.html |   13 +-
 .../sqlbuilder/class-use/ValueNodeBuilder.html     |   13 +-
 .../cayenne/access/sqlbuilder/package-summary.html |   13 +-
 .../cayenne/access/sqlbuilder/package-tree.html    |   13 +-
 .../cayenne/access/sqlbuilder/package-use.html     |   13 +-
 .../access/sqlbuilder/sqltree/AliasedNode.html     |   13 +-
 .../access/sqlbuilder/sqltree/BetweenNode.html     |   13 +-
 .../access/sqlbuilder/sqltree/BitwiseNotNode.html  |   13 +-
 .../access/sqlbuilder/sqltree/ChildProcessor.html  |   13 +-
 .../access/sqlbuilder/sqltree/ColumnNode.html      |   13 +-
 .../access/sqlbuilder/sqltree/DeleteNode.html      |   13 +-
 .../access/sqlbuilder/sqltree/DistinctNode.html    |   13 +-
 .../access/sqlbuilder/sqltree/EmptyNode.html       |   13 +-
 .../access/sqlbuilder/sqltree/EqualNode.html       |   13 +-
 .../access/sqlbuilder/sqltree/ExistsNode.html      |   13 +-
 .../access/sqlbuilder/sqltree/ExpressionNode.html  |   13 +-
 .../access/sqlbuilder/sqltree/FromNode.html        |   13 +-
 .../access/sqlbuilder/sqltree/FunctionNode.html    |   13 +-
 .../access/sqlbuilder/sqltree/GroupByNode.html     |   13 +-
 .../access/sqlbuilder/sqltree/HavingNode.html      |   13 +-
 .../cayenne/access/sqlbuilder/sqltree/InNode.html  |   13 +-
 .../sqlbuilder/sqltree/InsertColumnsNode.html      |   13 +-
 .../access/sqlbuilder/sqltree/InsertNode.html      |   13 +-
 .../sqlbuilder/sqltree/InsertValuesNode.html       |   13 +-
 .../access/sqlbuilder/sqltree/JoinNode.html        |   13 +-
 .../access/sqlbuilder/sqltree/LikeNode.html        |   13 +-
 .../access/sqlbuilder/sqltree/LimitOffsetNode.html |   13 +-
 .../cayenne/access/sqlbuilder/sqltree/Node.html    |   13 +-
 .../access/sqlbuilder/sqltree/NodeType.html        |   13 +-
 .../access/sqlbuilder/sqltree/NotEqualNode.html    |   13 +-
 .../cayenne/access/sqlbuilder/sqltree/NotNode.html |   13 +-
 .../sqlbuilder/sqltree/OffsetFetchNextNode.html    |   13 +-
 .../access/sqlbuilder/sqltree/OffsetNode.html      |   13 +-
 .../sqlbuilder/sqltree/OpExpressionNode.html       |   13 +-
 .../access/sqlbuilder/sqltree/OrderByNode.html     |   13 +-
 .../sqltree/PerAttributeChildProcessor.html        |   13 +-
 .../sqlbuilder/sqltree/SQLTreeProcessor.html       |   13 +-
 .../access/sqlbuilder/sqltree/SelectNode.html      |   13 +-
 .../sqlbuilder/sqltree/SelectResultNode.html       |   13 +-
 .../sqlbuilder/sqltree/SimpleNodeTreeVisitor.html  |   13 +-
 .../access/sqlbuilder/sqltree/SubqueryNode.html    |   13 +-
 .../access/sqlbuilder/sqltree/TableNode.html       |   13 +-
 .../access/sqlbuilder/sqltree/TextNode.html        |   13 +-
 .../cayenne/access/sqlbuilder/sqltree/TopNode.html |   13 +-
 .../sqlbuilder/sqltree/TrimmingColumnNode.html     |   13 +-
 .../sqlbuilder/sqltree/UnescapedColumnNode.html    |   13 +-
 .../access/sqlbuilder/sqltree/UpdateNode.html      |   13 +-
 .../access/sqlbuilder/sqltree/UpdateSetNode.html   |   13 +-
 .../access/sqlbuilder/sqltree/ValueNode.html       |   13 +-
 .../access/sqlbuilder/sqltree/WhereNode.html       |   13 +-
 .../sqlbuilder/sqltree/class-use/AliasedNode.html  |   13 +-
 .../sqlbuilder/sqltree/class-use/BetweenNode.html  |   13 +-
 .../sqltree/class-use/BitwiseNotNode.html          |   13 +-
 .../sqltree/class-use/ChildProcessor.html          |   13 +-
 .../sqlbuilder/sqltree/class-use/ColumnNode.html   |   13 +-
 .../sqlbuilder/sqltree/class-use/DeleteNode.html   |   13 +-
 .../sqlbuilder/sqltree/class-use/DistinctNode.html |   13 +-
 .../sqlbuilder/sqltree/class-use/EmptyNode.html    |   13 +-
 .../sqlbuilder/sqltree/class-use/EqualNode.html    |   13 +-
 .../sqlbuilder/sqltree/class-use/ExistsNode.html   |   13 +-
 .../sqltree/class-use/ExpressionNode.html          |   13 +-
 .../sqlbuilder/sqltree/class-use/FromNode.html     |   13 +-
 .../sqlbuilder/sqltree/class-use/FunctionNode.html |   13 +-
 .../sqlbuilder/sqltree/class-use/GroupByNode.html  |   13 +-
 .../sqlbuilder/sqltree/class-use/HavingNode.html   |   13 +-
 .../sqlbuilder/sqltree/class-use/InNode.html       |   13 +-
 .../sqltree/class-use/InsertColumnsNode.html       |   13 +-
 .../sqlbuilder/sqltree/class-use/InsertNode.html   |   13 +-
 .../sqltree/class-use/InsertValuesNode.html        |   13 +-
 .../sqlbuilder/sqltree/class-use/JoinNode.html     |   13 +-
 .../sqlbuilder/sqltree/class-use/LikeNode.html     |   13 +-
 .../sqltree/class-use/LimitOffsetNode.html         |   13 +-
 .../access/sqlbuilder/sqltree/class-use/Node.html  |   13 +-
 .../sqlbuilder/sqltree/class-use/NodeType.html     |   13 +-
 .../sqlbuilder/sqltree/class-use/NotEqualNode.html |   13 +-
 .../sqlbuilder/sqltree/class-use/NotNode.html      |   13 +-
 .../sqltree/class-use/OffsetFetchNextNode.html     |   13 +-
 .../sqlbuilder/sqltree/class-use/OffsetNode.html   |   13 +-
 .../sqltree/class-use/OpExpressionNode.html        |   13 +-
 .../sqlbuilder/sqltree/class-use/OrderByNode.html  |   13 +-
 .../class-use/PerAttributeChildProcessor.html      |   13 +-
 .../sqltree/class-use/SQLTreeProcessor.html        |   13 +-
 .../sqlbuilder/sqltree/class-use/SelectNode.html   |   13 +-
 .../sqltree/class-use/SelectResultNode.html        |   13 +-
 .../sqltree/class-use/SimpleNodeTreeVisitor.html   |   13 +-
 .../sqlbuilder/sqltree/class-use/SubqueryNode.html |   13 +-
 .../sqlbuilder/sqltree/class-use/TableNode.html    |   13 +-
 .../sqlbuilder/sqltree/class-use/TextNode.html     |   13 +-
 .../sqlbuilder/sqltree/class-use/TopNode.html      |   13 +-
 .../sqltree/class-use/TrimmingColumnNode.html      |   13 +-
 .../sqltree/class-use/UnescapedColumnNode.html     |   13 +-
 .../sqlbuilder/sqltree/class-use/UpdateNode.html   |   13 +-
 .../sqltree/class-use/UpdateSetNode.html           |   13 +-
 .../sqlbuilder/sqltree/class-use/ValueNode.html    |   13 +-
 .../sqlbuilder/sqltree/class-use/WhereNode.html    |   13 +-
 .../access/sqlbuilder/sqltree/package-summary.html |   13 +-
 .../access/sqlbuilder/sqltree/package-tree.html    |   13 +-
 .../access/sqlbuilder/sqltree/package-use.html     |   13 +-
 .../access/translator/DbAttributeBinding.html      |   13 +-
 .../access/translator/ParameterBinding.html        |   13 +-
 .../translator/ProcedureParameterBinding.html      |   13 +-
 .../translator/batch/BaseBatchTranslator.html      |   13 +-
 .../access/translator/batch/BatchTranslator.html   |   13 +-
 .../translator/batch/BatchTranslatorFactory.html   |   13 +-
 .../batch/DefaultBatchTranslatorFactory.html       |   13 +-
 .../translator/batch/DeleteBatchTranslator.html    |   13 +-
 .../translator/batch/InsertBatchTranslator.html    |   13 +-
 .../batch/SoftDeleteBatchTranslator.html           |   13 +-
 .../batch/SoftDeleteTranslatorFactory.html         |   13 +-
 .../translator/batch/UpdateBatchTranslator.html    |   13 +-
 .../batch/class-use/BaseBatchTranslator.html       |   13 +-
 .../batch/class-use/BatchTranslator.html           |   13 +-
 .../batch/class-use/BatchTranslatorFactory.html    |   13 +-
 .../class-use/DefaultBatchTranslatorFactory.html   |   13 +-
 .../batch/class-use/DeleteBatchTranslator.html     |   13 +-
 .../batch/class-use/InsertBatchTranslator.html     |   13 +-
 .../batch/class-use/SoftDeleteBatchTranslator.html |   13 +-
 .../class-use/SoftDeleteTranslatorFactory.html     |   13 +-
 .../batch/class-use/UpdateBatchTranslator.html     |   13 +-
 .../batch/legacy/DefaultBatchTranslator.html       |   13 +-
 .../legacy/DefaultBatchTranslatorFactory.html      |   13 +-
 .../batch/legacy/DeleteBatchTranslator.html        |   13 +-
 .../batch/legacy/InsertBatchTranslator.html        |   13 +-
 .../batch/legacy/SoftDeleteBatchTranslator.html    |   13 +-
 .../batch/legacy/SoftDeleteTranslatorFactory.html  |   13 +-
 .../batch/legacy/UpdateBatchTranslator.html        |   13 +-
 .../legacy/class-use/DefaultBatchTranslator.html   |   13 +-
 .../class-use/DefaultBatchTranslatorFactory.html   |   13 +-
 .../legacy/class-use/DeleteBatchTranslator.html    |   13 +-
 .../legacy/class-use/InsertBatchTranslator.html    |   13 +-
 .../class-use/SoftDeleteBatchTranslator.html       |   13 +-
 .../class-use/SoftDeleteTranslatorFactory.html     |   13 +-
 .../legacy/class-use/UpdateBatchTranslator.html    |   13 +-
 .../translator/batch/legacy/package-summary.html   |   13 +-
 .../translator/batch/legacy/package-tree.html      |   13 +-
 .../translator/batch/legacy/package-use.html       |   13 +-
 .../access/translator/batch/package-summary.html   |   13 +-
 .../access/translator/batch/package-tree.html      |   13 +-
 .../access/translator/batch/package-use.html       |   13 +-
 .../translator/class-use/DbAttributeBinding.html   |   13 +-
 .../translator/class-use/ParameterBinding.html     |   13 +-
 .../class-use/ProcedureParameterBinding.html       |   13 +-
 .../translator/ejbql/EJBQLConditionTranslator.html |   13 +-
 .../translator/ejbql/EJBQLDbPathTranslator.html    |   13 +-
 .../translator/ejbql/EJBQLDeleteTranslator.html    |   13 +-
 .../translator/ejbql/EJBQLFromTranslator.html      |   13 +-
 .../access/translator/ejbql/EJBQLJoinAppender.html |   13 +-
 .../translator/ejbql/EJBQLMultiColumnOperand.html  |   13 +-
 .../translator/ejbql/EJBQLPathTranslator.html      |   13 +-
 .../ejbql/EJBQLSelectColumnsTranslator.html        |   13 +-
 .../translator/ejbql/EJBQLSelectTranslator.html    |   13 +-
 .../translator/ejbql/EJBQLTranslationContext.html  |   13 +-
 .../translator/ejbql/EJBQLTranslatorFactory.html   |   13 +-
 .../ejbql/JdbcEJBQLTranslatorFactory.html          |   13 +-
 .../ejbql/class-use/EJBQLConditionTranslator.html  |   13 +-
 .../ejbql/class-use/EJBQLDbPathTranslator.html     |   13 +-
 .../ejbql/class-use/EJBQLDeleteTranslator.html     |   13 +-
 .../ejbql/class-use/EJBQLFromTranslator.html       |   13 +-
 .../ejbql/class-use/EJBQLJoinAppender.html         |   13 +-
 .../ejbql/class-use/EJBQLMultiColumnOperand.html   |   13 +-
 .../ejbql/class-use/EJBQLPathTranslator.html       |   13 +-
 .../class-use/EJBQLSelectColumnsTranslator.html    |   13 +-
 .../ejbql/class-use/EJBQLSelectTranslator.html     |   13 +-
 .../ejbql/class-use/EJBQLTranslationContext.html   |   13 +-
 .../ejbql/class-use/EJBQLTranslatorFactory.html    |   13 +-
 .../class-use/JdbcEJBQLTranslatorFactory.html      |   13 +-
 .../access/translator/ejbql/package-summary.html   |   13 +-
 .../access/translator/ejbql/package-tree.html      |   13 +-
 .../access/translator/ejbql/package-use.html       |   13 +-
 .../cayenne/access/translator/package-summary.html |   13 +-
 .../cayenne/access/translator/package-tree.html    |   13 +-
 .../cayenne/access/translator/package-use.html     |   13 +-
 .../translator/procedure/ProcedureTranslator.html  |   13 +-
 .../procedure/class-use/ProcedureTranslator.html   |   13 +-
 .../translator/procedure/package-summary.html      |   13 +-
 .../access/translator/procedure/package-tree.html  |   13 +-
 .../access/translator/procedure/package-use.html   |   13 +-
 .../translator/select/BaseSQLTreeProcessor.html    |   13 +-
 .../select/DefaultQuotingAppendable.html           |   13 +-
 .../translator/select/DefaultSelectTranslator.html |   13 +-
 .../select/DefaultSelectTranslatorFactory.html     |   13 +-
 .../translator/select/FluentSelectWrapper.html     |   13 +-
 .../access/translator/select/SQLResultStage.html   |   13 +-
 .../translator/select/SelectQueryWrapper.html      |   13 +-
 .../access/translator/select/SelectTranslator.html |   13 +-
 .../translator/select/SelectTranslatorFactory.html |   13 +-
 .../select/TranslatableQueryWrapper.html           |   13 +-
 .../translator/select/TranslatorContext.html       |   13 +-
 .../select/TypeAwareSQLTreeProcessor.html          |   13 +-
 .../select/class-use/BaseSQLTreeProcessor.html     |   13 +-
 .../select/class-use/DefaultQuotingAppendable.html |   13 +-
 .../select/class-use/DefaultSelectTranslator.html  |   13 +-
 .../class-use/DefaultSelectTranslatorFactory.html  |   13 +-
 .../select/class-use/FluentSelectWrapper.html      |   13 +-
 .../select/class-use/SQLResultStage.html           |   13 +-
 .../select/class-use/SelectQueryWrapper.html       |   13 +-
 .../select/class-use/SelectTranslator.html         |   13 +-
 .../select/class-use/SelectTranslatorFactory.html  |   13 +-
 .../select/class-use/TranslatableQueryWrapper.html |   13 +-
 .../select/class-use/TranslatorContext.html        |   13 +-
 .../class-use/TypeAwareSQLTreeProcessor.html       |   13 +-
 .../access/translator/select/package-summary.html  |   13 +-
 .../access/translator/select/package-tree.html     |   13 +-
 .../access/translator/select/package-use.html      |   13 +-
 .../cayenne/access/types/BigDecimalType.html       |   13 +-
 .../cayenne/access/types/BigDecimalValueType.html  |   13 +-
 .../cayenne/access/types/BigIntegerValueType.html  |   13 +-
 .../apache/cayenne/access/types/BooleanType.html   |   13 +-
 .../apache/cayenne/access/types/ByteArrayType.html |   13 +-
 .../org/apache/cayenne/access/types/ByteType.html  |   13 +-
 .../apache/cayenne/access/types/CalendarType.html  |   13 +-
 .../org/apache/cayenne/access/types/CharType.html  |   13 +-
 .../cayenne/access/types/CharacterValueType.html   |   13 +-
 .../org/apache/cayenne/access/types/DateType.html  |   13 +-
 .../types/DefaultValueObjectTypeRegistry.html      |   13 +-
 .../apache/cayenne/access/types/DoubleType.html    |   13 +-
 .../apache/cayenne/access/types/DurationType.html  |   13 +-
 .../org/apache/cayenne/access/types/EnumType.html  |   13 +-
 .../cayenne/access/types/EnumTypeFactory.html      |   13 +-
 .../cayenne/access/types/ExtendedEnumType.html     |   13 +-
 .../apache/cayenne/access/types/ExtendedType.html  |   13 +-
 .../cayenne/access/types/ExtendedTypeFactory.html  |   13 +-
 .../cayenne/access/types/ExtendedTypeMap.html      |   13 +-
 .../org/apache/cayenne/access/types/FloatType.html |   13 +-
 .../apache/cayenne/access/types/GeoJsonType.html   |   13 +-
 .../apache/cayenne/access/types/IntegerType.html   |   13 +-
 .../InternalUnsupportedTypeFactory.Marker.html     |   13 +-
 .../types/InternalUnsupportedTypeFactory.html      |   13 +-
 .../org/apache/cayenne/access/types/JsonType.html  |   13 +-
 .../access/types/LocalDateTimeValueType.html       |   13 +-
 .../cayenne/access/types/LocalDateValueType.html   |   13 +-
 .../cayenne/access/types/LocalTimeValueType.html   |   13 +-
 .../org/apache/cayenne/access/types/LongType.html  |   13 +-
 .../apache/cayenne/access/types/ObjectType.html    |   13 +-
 .../cayenne/access/types/PeriodValueType.html      |   13 +-
 .../org/apache/cayenne/access/types/ShortType.html |   13 +-
 .../org/apache/cayenne/access/types/TimeType.html  |   13 +-
 .../apache/cayenne/access/types/TimestampType.html |   13 +-
 .../apache/cayenne/access/types/UUIDValueType.html |   13 +-
 .../apache/cayenne/access/types/UtilDateType.html  |   13 +-
 .../cayenne/access/types/ValueObjectType.html      |   13 +-
 .../access/types/ValueObjectTypeFactory.html       |   13 +-
 .../access/types/ValueObjectTypeRegistry.html      |   13 +-
 .../org/apache/cayenne/access/types/VoidType.html  |   13 +-
 .../org/apache/cayenne/access/types/WktType.html   |   13 +-
 .../access/types/class-use/BigDecimalType.html     |   13 +-
 .../types/class-use/BigDecimalValueType.html       |   13 +-
 .../types/class-use/BigIntegerValueType.html       |   13 +-
 .../access/types/class-use/BooleanType.html        |   13 +-
 .../access/types/class-use/ByteArrayType.html      |   13 +-
 .../cayenne/access/types/class-use/ByteType.html   |   13 +-
 .../access/types/class-use/CalendarType.html       |   13 +-
 .../cayenne/access/types/class-use/CharType.html   |   13 +-
 .../access/types/class-use/CharacterValueType.html |   13 +-
 .../cayenne/access/types/class-use/DateType.html   |   13 +-
 .../class-use/DefaultValueObjectTypeRegistry.html  |   13 +-
 .../cayenne/access/types/class-use/DoubleType.html |   13 +-
 .../access/types/class-use/DurationType.html       |   13 +-
 .../cayenne/access/types/class-use/EnumType.html   |   13 +-
 .../access/types/class-use/EnumTypeFactory.html    |   13 +-
 .../access/types/class-use/ExtendedEnumType.html   |   13 +-
 .../access/types/class-use/ExtendedType.html       |   13 +-
 .../types/class-use/ExtendedTypeFactory.html       |   13 +-
 .../access/types/class-use/ExtendedTypeMap.html    |   13 +-
 .../cayenne/access/types/class-use/FloatType.html  |   13 +-
 .../access/types/class-use/GeoJsonType.html        |   13 +-
 .../access/types/class-use/IntegerType.html        |   13 +-
 .../InternalUnsupportedTypeFactory.Marker.html     |   13 +-
 .../class-use/InternalUnsupportedTypeFactory.html  |   13 +-
 .../cayenne/access/types/class-use/JsonType.html   |   13 +-
 .../types/class-use/LocalDateTimeValueType.html    |   13 +-
 .../access/types/class-use/LocalDateValueType.html |   13 +-
 .../access/types/class-use/LocalTimeValueType.html |   13 +-
 .../cayenne/access/types/class-use/LongType.html   |   13 +-
 .../cayenne/access/types/class-use/ObjectType.html |   13 +-
 .../access/types/class-use/PeriodValueType.html    |   13 +-
 .../cayenne/access/types/class-use/ShortType.html  |   13 +-
 .../cayenne/access/types/class-use/TimeType.html   |   13 +-
 .../access/types/class-use/TimestampType.html      |   13 +-
 .../access/types/class-use/UUIDValueType.html      |   13 +-
 .../access/types/class-use/UtilDateType.html       |   13 +-
 .../access/types/class-use/ValueObjectType.html    |   13 +-
 .../types/class-use/ValueObjectTypeFactory.html    |   13 +-
 .../types/class-use/ValueObjectTypeRegistry.html   |   13 +-
 .../cayenne/access/types/class-use/VoidType.html   |   13 +-
 .../cayenne/access/types/class-use/WktType.html    |   13 +-
 .../cayenne/access/types/package-summary.html      |   13 +-
 .../apache/cayenne/access/types/package-tree.html  |   13 +-
 .../apache/cayenne/access/types/package-use.html   |   13 +-
 .../access/util/DefaultOperationObserver.html      |   13 +-
 .../access/util/DoNothingOperationObserver.html    |   13 +-
 .../access/util/IteratedSelectObserver.html        |   13 +-
 .../util/class-use/DefaultOperationObserver.html   |   13 +-
 .../util/class-use/DoNothingOperationObserver.html |   13 +-
 .../util/class-use/IteratedSelectObserver.html     |   13 +-
 .../cayenne/access/util/package-summary.html       |   13 +-
 .../apache/cayenne/access/util/package-tree.html   |   13 +-
 .../apache/cayenne/access/util/package-use.html    |   13 +-
 .../api/org/apache/cayenne/annotation/PostAdd.html |   13 +-
 .../org/apache/cayenne/annotation/PostLoad.html    |   13 +-
 .../org/apache/cayenne/annotation/PostPersist.html |   13 +-
 .../org/apache/cayenne/annotation/PostRemove.html  |   13 +-
 .../org/apache/cayenne/annotation/PostUpdate.html  |   13 +-
 .../org/apache/cayenne/annotation/PrePersist.html  |   13 +-
 .../org/apache/cayenne/annotation/PreRemove.html   |   13 +-
 .../org/apache/cayenne/annotation/PreUpdate.html   |   13 +-
 .../cayenne/annotation/class-use/PostAdd.html      |   13 +-
 .../cayenne/annotation/class-use/PostLoad.html     |   13 +-
 .../cayenne/annotation/class-use/PostPersist.html  |   13 +-
 .../cayenne/annotation/class-use/PostRemove.html   |   13 +-
 .../cayenne/annotation/class-use/PostUpdate.html   |   13 +-
 .../cayenne/annotation/class-use/PrePersist.html   |   13 +-
 .../cayenne/annotation/class-use/PreRemove.html    |   13 +-
 .../cayenne/annotation/class-use/PreUpdate.html    |   13 +-
 .../apache/cayenne/annotation/package-summary.html |   13 +-
 .../apache/cayenne/annotation/package-tree.html    |   13 +-
 .../org/apache/cayenne/annotation/package-use.html |   13 +-
 .../cayenne/ashwood/AshwoodEntitySorter.html       |   13 +-
 .../api/org/apache/cayenne/ashwood/SortWeight.html |   13 +-
 .../ashwood/WeightedAshwoodEntitySorter.html       |   13 +-
 .../ashwood/class-use/AshwoodEntitySorter.html     |   13 +-
 .../cayenne/ashwood/class-use/SortWeight.html      |   13 +-
 .../class-use/WeightedAshwoodEntitySorter.html     |   13 +-
 .../apache/cayenne/ashwood/graph/ArcIterator.html  |   13 +-
 .../cayenne/ashwood/graph/DepthFirstSearch.html    |   13 +-
 .../ashwood/graph/DepthFirstStampSearch.html       |   13 +-
 .../org/apache/cayenne/ashwood/graph/Digraph.html  |   13 +-
 .../cayenne/ashwood/graph/DigraphIteration.html    |   13 +-
 .../cayenne/ashwood/graph/FilterArcIterator.html   |   13 +-
 .../cayenne/ashwood/graph/FilterIteration.html     |   13 +-
 .../ashwood/graph/IndegreeTopologicalSort.html     |   13 +-
 .../apache/cayenne/ashwood/graph/MapDigraph.html   |   13 +-
 .../ReversedIteration.ReversedArcIterator.html     |   13 +-
 .../cayenne/ashwood/graph/ReversedIteration.html   |   13 +-
 .../cayenne/ashwood/graph/StrongConnection.html    |   13 +-
 .../ashwood/graph/class-use/ArcIterator.html       |   13 +-
 .../ashwood/graph/class-use/DepthFirstSearch.html  |   13 +-
 .../graph/class-use/DepthFirstStampSearch.html     |   13 +-
 .../cayenne/ashwood/graph/class-use/Digraph.html   |   13 +-
 .../ashwood/graph/class-use/DigraphIteration.html  |   13 +-
 .../ashwood/graph/class-use/FilterArcIterator.html |   13 +-
 .../ashwood/graph/class-use/FilterIteration.html   |   13 +-
 .../graph/class-use/IndegreeTopologicalSort.html   |   13 +-
 .../ashwood/graph/class-use/MapDigraph.html        |   13 +-
 .../ReversedIteration.ReversedArcIterator.html     |   13 +-
 .../ashwood/graph/class-use/ReversedIteration.html |   13 +-
 .../ashwood/graph/class-use/StrongConnection.html  |   13 +-
 .../cayenne/ashwood/graph/package-summary.html     |   13 +-
 .../apache/cayenne/ashwood/graph/package-tree.html |   13 +-
 .../apache/cayenne/ashwood/graph/package-use.html  |   13 +-
 .../apache/cayenne/ashwood/package-summary.html    |   13 +-
 .../org/apache/cayenne/ashwood/package-tree.html   |   13 +-
 .../org/apache/cayenne/ashwood/package-use.html    |   13 +-
 .../org/apache/cayenne/cache/MapQueryCache.html    |   13 +-
 .../cayenne/cache/MapQueryCacheProvider.html       |   13 +-
 .../org/apache/cayenne/cache/NestedQueryCache.html |   13 +-
 .../api/org/apache/cayenne/cache/QueryCache.html   |   13 +-
 .../cayenne/cache/QueryCacheEntryFactory.html      |   13 +-
 .../cayenne/cache/class-use/MapQueryCache.html     |   13 +-
 .../cache/class-use/MapQueryCacheProvider.html     |   13 +-
 .../cayenne/cache/class-use/NestedQueryCache.html  |   13 +-
 .../apache/cayenne/cache/class-use/QueryCache.html |   13 +-
 .../cache/class-use/QueryCacheEntryFactory.html    |   13 +-
 .../org/apache/cayenne/cache/package-summary.html  |   13 +-
 .../api/org/apache/cayenne/cache/package-tree.html |   13 +-
 .../api/org/apache/cayenne/cache/package-use.html  |   13 +-
 .../org/apache/cayenne/class-use/BaseContext.html  |   13 +-
 .../apache/cayenne/class-use/BaseDataObject.html   |   13 +-
 .../api/org/apache/cayenne/class-use/Cayenne.html  |   13 +-
 .../cayenne/class-use/CayenneDataObject.html       |   13 +-
 .../apache/cayenne/class-use/CayenneException.html |   13 +-
 .../cayenne/class-use/CayenneRuntimeException.html |   13 +-
 .../cayenne/class-use/ConfigurationException.html  |   13 +-
 .../org/apache/cayenne/class-use/DataChannel.html  |   13 +-
 .../cayenne/class-use/DataChannelFilter.html       |   13 +-
 .../cayenne/class-use/DataChannelFilterChain.html  |   13 +-
 .../cayenne/class-use/DataChannelListener.html     |   13 +-
 .../cayenne/class-use/DataChannelQueryFilter.html  |   13 +-
 .../class-use/DataChannelQueryFilterChain.html     |   13 +-
 .../class-use/DataChannelSyncCallbackAction.html   |   13 +-
 .../cayenne/class-use/DataChannelSyncFilter.html   |   13 +-
 .../class-use/DataChannelSyncFilterChain.html      |   13 +-
 .../org/apache/cayenne/class-use/DataObject.html   |   13 +-
 .../api/org/apache/cayenne/class-use/DataRow.html  |   13 +-
 .../cayenne/class-use/DeleteDenyException.html     |   13 +-
 .../apache/cayenne/class-use/EmbeddableObject.html |   13 +-
 .../cayenne/class-use/ExtendedEnumeration.html     |   13 +-
 .../api/org/apache/cayenne/class-use/Fault.html    |   13 +-
 .../cayenne/class-use/FaultFailureException.html   |   13 +-
 .../apache/cayenne/class-use/HybridDataObject.html |   13 +-
 .../cayenne/class-use/LifecycleListener.html       |   13 +-
 .../apache/cayenne/class-use/ObjectContext.html    |   13 +-
 .../api/org/apache/cayenne/class-use/ObjectId.html |   13 +-
 .../apache/cayenne/class-use/PersistenceState.html |   13 +-
 .../org/apache/cayenne/class-use/Persistent.html   |   13 +-
 .../apache/cayenne/class-use/PersistentObject.html |   13 +-
 .../apache/cayenne/class-use/ProcedureResult.html  |   13 +-
 .../apache/cayenne/class-use/QueryResponse.html    |   13 +-
 .../org/apache/cayenne/class-use/QueryResult.html  |   13 +-
 .../apache/cayenne/class-use/QueryResultItem.html  |   13 +-
 .../cayenne/class-use/ResultBatchIterator.html     |   13 +-
 .../apache/cayenne/class-use/ResultIterator.html   |   13 +-
 .../cayenne/class-use/ResultIteratorCallback.html  |   13 +-
 .../org/apache/cayenne/class-use/Validating.html   |   13 +-
 .../org/apache/cayenne/class-use/ValueHolder.html  |   13 +-
 .../BaseConfigurationNodeVisitor.html              |   13 +-
 .../cayenne/configuration/CayenneRuntime.html      |   13 +-
 .../configuration/ConfigurationNameMapper.html     |   13 +-
 .../cayenne/configuration/ConfigurationNode.html   |   13 +-
 .../configuration/ConfigurationNodeVisitor.html    |   13 +-
 .../cayenne/configuration/ConfigurationTree.html   |   13 +-
 .../apache/cayenne/configuration/Constants.html    |   13 +-
 .../configuration/DataChannelDescriptor.html       |   13 +-
 .../configuration/DataChannelDescriptorLoader.html |   13 +-
 .../configuration/DataChannelDescriptorMerger.html |   13 +-
 .../cayenne/configuration/DataMapLoader.html       |   13 +-
 .../cayenne/configuration/DataNodeDescriptor.html  |   13 +-
 .../DefaultConfigurationNameMapper.html            |   13 +-
 .../DefaultDataChannelDescriptorMerger.html        |   13 +-
 .../configuration/DefaultObjectStoreFactory.html   |   13 +-
 .../configuration/DefaultRuntimeProperties.html    |   13 +-
 .../EmptyConfigurationNodeVisitor.html             |   13 +-
 .../configuration/ObjectContextFactory.html        |   13 +-
 .../cayenne/configuration/ObjectStoreFactory.html  |   13 +-
 .../cayenne/configuration/PasswordEncoding.html    |   13 +-
 .../configuration/PlainTextPasswordEncoder.html    |   13 +-
 .../configuration/Rot13PasswordEncoder.html        |   13 +-
 .../configuration/Rot47PasswordEncoder.html        |   13 +-
 .../cayenne/configuration/RuntimeProperties.html   |   13 +-
 .../class-use/BaseConfigurationNodeVisitor.html    |   13 +-
 .../configuration/class-use/CayenneRuntime.html    |   13 +-
 .../class-use/ConfigurationNameMapper.html         |   13 +-
 .../configuration/class-use/ConfigurationNode.html |   13 +-
 .../class-use/ConfigurationNodeVisitor.html        |   13 +-
 .../configuration/class-use/ConfigurationTree.html |   13 +-
 .../cayenne/configuration/class-use/Constants.html |   13 +-
 .../class-use/DataChannelDescriptor.html           |   13 +-
 .../class-use/DataChannelDescriptorLoader.html     |   13 +-
 .../class-use/DataChannelDescriptorMerger.html     |   13 +-
 .../configuration/class-use/DataMapLoader.html     |   13 +-
 .../class-use/DataNodeDescriptor.html              |   13 +-
 .../class-use/DefaultConfigurationNameMapper.html  |   13 +-
 .../DefaultDataChannelDescriptorMerger.html        |   13 +-
 .../class-use/DefaultObjectStoreFactory.html       |   13 +-
 .../class-use/DefaultRuntimeProperties.html        |   13 +-
 .../class-use/EmptyConfigurationNodeVisitor.html   |   13 +-
 .../class-use/ObjectContextFactory.html            |   13 +-
 .../class-use/ObjectStoreFactory.html              |   13 +-
 .../configuration/class-use/PasswordEncoding.html  |   13 +-
 .../class-use/PlainTextPasswordEncoder.html        |   13 +-
 .../class-use/Rot13PasswordEncoder.html            |   13 +-
 .../class-use/Rot47PasswordEncoder.html            |   13 +-
 .../configuration/class-use/RuntimeProperties.html |   13 +-
 .../cayenne/configuration/package-summary.html     |   13 +-
 .../apache/cayenne/configuration/package-tree.html |   13 +-
 .../apache/cayenne/configuration/package-use.html  |   13 +-
 .../rop/client/CayenneClientModuleProvider.html    |   13 +-
 .../rop/client/CayenneContextFactory.html          |   13 +-
 .../rop/client/ClientChannelProvider.html          |   13 +-
 .../configuration/rop/client/ClientConstants.html  |   13 +-
 .../configuration/rop/client/ClientModule.html     |   13 +-
 .../configuration/rop/client/ClientRuntime.html    |   13 +-
 .../rop/client/ClientRuntimeBuilder.html           |   13 +-
 .../client/LocalClientServerChannelProvider.html   |   13 +-
 .../rop/client/LocalConnectionProvider.html        |   13 +-
 .../client/MainCayenneClientModuleProvider.html    |   13 +-
 .../class-use/CayenneClientModuleProvider.html     |   13 +-
 .../client/class-use/CayenneContextFactory.html    |   13 +-
 .../client/class-use/ClientChannelProvider.html    |   13 +-
 .../rop/client/class-use/ClientConstants.html      |   13 +-
 .../rop/client/class-use/ClientModule.html         |   13 +-
 .../rop/client/class-use/ClientRuntime.html        |   13 +-
 .../rop/client/class-use/ClientRuntimeBuilder.html |   13 +-
 .../LocalClientServerChannelProvider.html          |   13 +-
 .../client/class-use/LocalConnectionProvider.html  |   13 +-
 .../class-use/MainCayenneClientModuleProvider.html |   13 +-
 .../configuration/rop/client/package-summary.html  |   13 +-
 .../configuration/rop/client/package-tree.html     |   13 +-
 .../configuration/rop/client/package-use.html      |   13 +-
 .../server/CayenneServerModuleProvider.html        |   13 +-
 .../configuration/server/DataContextFactory.html   |   13 +-
 .../server/DataDomainLoadException.html            |   13 +-
 .../configuration/server/DataDomainProvider.html   |   13 +-
 .../configuration/server/DataNodeFactory.html      |   13 +-
 .../configuration/server/DataSourceFactory.html    |   13 +-
 .../configuration/server/DbAdapterDetector.html    |   13 +-
 .../configuration/server/DbAdapterFactory.html     |   13 +-
 .../server/DefaultDataNodeFactory.html             |   13 +-
 .../server/DefaultDbAdapterFactory.html            |   13 +-
 .../server/DelegatingDataSourceFactory.html        |   13 +-
 .../server/DomainDataChannelProvider.html          |   13 +-
 .../server/JNDIDataSourceFactory.html              |   13 +-
 .../server/MainCayenneServerModuleProvider.html    |   13 +-
 .../server/PkGeneratorFactoryProvider.html         |   13 +-
 .../server/PropertyDataSourceFactory.html          |   13 +-
 .../cayenne/configuration/server/ServerModule.html |   13 +-
 .../configuration/server/ServerRuntime.html        |   13 +-
 .../configuration/server/ServerRuntimeBuilder.html |   13 +-
 .../server/XMLPoolingDataSourceFactory.html        |   13 +-
 .../class-use/CayenneServerModuleProvider.html     |   13 +-
 .../server/class-use/DataContextFactory.html       |   13 +-
 .../server/class-use/DataDomainLoadException.html  |   13 +-
 .../server/class-use/DataDomainProvider.html       |   13 +-
 .../server/class-use/DataNodeFactory.html          |   13 +-
 .../server/class-use/DataSourceFactory.html        |   13 +-
 .../server/class-use/DbAdapterDetector.html        |   13 +-
 .../server/class-use/DbAdapterFactory.html         |   13 +-
 .../server/class-use/DefaultDataNodeFactory.html   |   13 +-
 .../server/class-use/DefaultDbAdapterFactory.html  |   13 +-
 .../class-use/DelegatingDataSourceFactory.html     |   13 +-
 .../class-use/DomainDataChannelProvider.html       |   13 +-
 .../server/class-use/JNDIDataSourceFactory.html    |   13 +-
 .../class-use/MainCayenneServerModuleProvider.html |   13 +-
 .../class-use/PkGeneratorFactoryProvider.html      |   13 +-
 .../class-use/PropertyDataSourceFactory.html       |   13 +-
 .../server/class-use/ServerModule.html             |   13 +-
 .../server/class-use/ServerRuntime.html            |   13 +-
 .../server/class-use/ServerRuntimeBuilder.html     |   13 +-
 .../class-use/XMLPoolingDataSourceFactory.html     |   13 +-
 .../configuration/server/package-summary.html      |   13 +-
 .../cayenne/configuration/server/package-tree.html |   13 +-
 .../cayenne/configuration/server/package-use.html  |   13 +-
 .../xml/DataChannelLoaderListener.html             |   13 +-
 .../configuration/xml/DataChannelMetaData.html     |   13 +-
 .../cayenne/configuration/xml/DataMapHandler.html  |   13 +-
 .../configuration/xml/DataMapLoaderListener.html   |   13 +-
 .../cayenne/configuration/xml/DbEntityHandler.html |   13 +-
 .../configuration/xml/DbKeyGeneratorHandler.html   |   13 +-
 .../configuration/xml/DbRelationshipHandler.html   |   13 +-
 .../xml/DefaultDataChannelMetaData.html            |   13 +-
 .../configuration/xml/DefaultHandlerFactory.html   |   13 +-
 .../xml/EmbeddableAttributeHandler.html            |   13 +-
 .../configuration/xml/EmbeddableHandler.html       |   13 +-
 .../cayenne/configuration/xml/HandlerFactory.html  |   13 +-
 .../cayenne/configuration/xml/LoaderContext.html   |   13 +-
 .../xml/NamespaceAwareNestedTagHandler.html        |   13 +-
 .../configuration/xml/NoopDataChannelMetaData.html |   13 +-
 .../configuration/xml/ObjEntityHandler.html        |   13 +-
 .../configuration/xml/ObjRelationshipHandler.html  |   13 +-
 .../configuration/xml/ProcedureHandler.html        |   13 +-
 .../configuration/xml/QueryDescriptorHandler.html  |   13 +-
 .../configuration/xml/RootDataMapHandler.html      |   13 +-
 .../configuration/xml/SAXNestedTagHandler.html     |   13 +-
 .../configuration/xml/VersionAwareHandler.html     |   13 +-
 .../xml/XMLDataChannelDescriptorLoader.html        |   13 +-
 .../configuration/xml/XMLDataMapLoader.html        |   13 +-
 .../configuration/xml/XMLReaderProvider.html       |   13 +-
 .../xml/class-use/DataChannelLoaderListener.html   |   13 +-
 .../xml/class-use/DataChannelMetaData.html         |   13 +-
 .../xml/class-use/DataMapHandler.html              |   13 +-
 .../xml/class-use/DataMapLoaderListener.html       |   13 +-
 .../xml/class-use/DbEntityHandler.html             |   13 +-
 .../xml/class-use/DbKeyGeneratorHandler.html       |   13 +-
 .../xml/class-use/DbRelationshipHandler.html       |   13 +-
 .../xml/class-use/DefaultDataChannelMetaData.html  |   13 +-
 .../xml/class-use/DefaultHandlerFactory.html       |   13 +-
 .../xml/class-use/EmbeddableAttributeHandler.html  |   13 +-
 .../xml/class-use/EmbeddableHandler.html           |   13 +-
 .../xml/class-use/HandlerFactory.html              |   13 +-
 .../configuration/xml/class-use/LoaderContext.html |   13 +-
 .../class-use/NamespaceAwareNestedTagHandler.html  |   13 +-
 .../xml/class-use/NoopDataChannelMetaData.html     |   13 +-
 .../xml/class-use/ObjEntityHandler.html            |   13 +-
 .../xml/class-use/ObjRelationshipHandler.html      |   13 +-
 .../xml/class-use/ProcedureHandler.html            |   13 +-
 .../xml/class-use/QueryDescriptorHandler.html      |   13 +-
 .../xml/class-use/RootDataMapHandler.html          |   13 +-
 .../xml/class-use/SAXNestedTagHandler.html         |   13 +-
 .../xml/class-use/VersionAwareHandler.html         |   13 +-
 .../class-use/XMLDataChannelDescriptorLoader.html  |   13 +-
 .../xml/class-use/XMLDataMapLoader.html            |   13 +-
 .../xml/class-use/XMLReaderProvider.html           |   13 +-
 .../cayenne/configuration/xml/package-summary.html |   13 +-
 .../cayenne/configuration/xml/package-tree.html    |   13 +-
 .../cayenne/configuration/xml/package-use.html     |   13 +-
 .../org/apache/cayenne/conn/DataSourceInfo.html    |   13 +-
 .../cayenne/conn/class-use/DataSourceInfo.html     |   13 +-
 .../org/apache/cayenne/conn/package-summary.html   |   13 +-
 .../api/org/apache/cayenne/conn/package-tree.html  |   13 +-
 .../api/org/apache/cayenne/conn/package-use.html   |   13 +-
 .../datasource/BadValidationQueryException.html    |   13 +-
 .../cayenne/datasource/DataSourceBuilder.html      |   13 +-
 .../cayenne/datasource/DriverDataSource.html       |   13 +-
 .../datasource/ManagedPoolingDataSource.html       |   13 +-
 .../cayenne/datasource/PoolAwareConnection.html    |   13 +-
 .../cayenne/datasource/PoolingDataSource.html      |   13 +-
 .../datasource/PoolingDataSourceBuilder.html       |   13 +-
 .../datasource/PoolingDataSourceParameters.html    |   13 +-
 ...gDataSource.ConnectionUnavailableException.html |   13 +-
 .../datasource/UnmanagedPoolingDataSource.html     |   13 +-
 .../class-use/BadValidationQueryException.html     |   13 +-
 .../datasource/class-use/DataSourceBuilder.html    |   13 +-
 .../datasource/class-use/DriverDataSource.html     |   13 +-
 .../class-use/ManagedPoolingDataSource.html        |   13 +-
 .../datasource/class-use/PoolAwareConnection.html  |   13 +-
 .../datasource/class-use/PoolingDataSource.html    |   13 +-
 .../class-use/PoolingDataSourceBuilder.html        |   13 +-
 .../class-use/PoolingDataSourceParameters.html     |   13 +-
 ...gDataSource.ConnectionUnavailableException.html |   13 +-
 .../class-use/UnmanagedPoolingDataSource.html      |   13 +-
 .../apache/cayenne/datasource/package-summary.html |   13 +-
 .../apache/cayenne/datasource/package-tree.html    |   13 +-
 .../org/apache/cayenne/datasource/package-use.html |   13 +-
 .../api/org/apache/cayenne/dba/AutoAdapter.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/dba/DbAdapter.html |   13 +-
 .../apache/cayenne/dba/DefaultQuotingStrategy.html |   13 +-
 .../org/apache/cayenne/dba/JdbcActionBuilder.html  |   13 +-
 .../api/org/apache/cayenne/dba/JdbcAdapter.html    |   13 +-
 .../org/apache/cayenne/dba/JdbcPkGenerator.html    |   13 +-
 .../org/apache/cayenne/dba/PerAdapterProvider.html |   13 +-
 .../api/org/apache/cayenne/dba/PkGenerator.html    |   13 +-
 .../org/apache/cayenne/dba/QuotingStrategy.html    |   13 +-
 .../api/org/apache/cayenne/dba/TypesHandler.html   |   13 +-
 .../api/org/apache/cayenne/dba/TypesMapping.html   |   13 +-
 .../apache/cayenne/dba/class-use/AutoAdapter.html  |   13 +-
 .../apache/cayenne/dba/class-use/DbAdapter.html    |   13 +-
 .../dba/class-use/DefaultQuotingStrategy.html      |   13 +-
 .../cayenne/dba/class-use/JdbcActionBuilder.html   |   13 +-
 .../apache/cayenne/dba/class-use/JdbcAdapter.html  |   13 +-
 .../cayenne/dba/class-use/JdbcPkGenerator.html     |   13 +-
 .../cayenne/dba/class-use/PerAdapterProvider.html  |   13 +-
 .../apache/cayenne/dba/class-use/PkGenerator.html  |   13 +-
 .../cayenne/dba/class-use/QuotingStrategy.html     |   13 +-
 .../apache/cayenne/dba/class-use/TypesHandler.html |   13 +-
 .../apache/cayenne/dba/class-use/TypesMapping.html |   13 +-
 .../apache/cayenne/dba/db2/DB2ActionBuilder.html   |   13 +-
 .../api/org/apache/cayenne/dba/db2/DB2Adapter.html |   13 +-
 .../dba/db2/DB2EJBQLConditionTranslator.html       |   13 +-
 .../cayenne/dba/db2/DB2EJBQLTranslatorFactory.html |   13 +-
 .../org/apache/cayenne/dba/db2/DB2PkGenerator.html |   13 +-
 .../cayenne/dba/db2/DB2SQLTreeProcessor.html       |   13 +-
 .../apache/cayenne/dba/db2/DB2SelectAction.html    |   13 +-
 .../api/org/apache/cayenne/dba/db2/DB2Sniffer.html |   13 +-
 .../dba/db2/class-use/DB2ActionBuilder.html        |   13 +-
 .../cayenne/dba/db2/class-use/DB2Adapter.html      |   13 +-
 .../db2/class-use/DB2EJBQLConditionTranslator.html |   13 +-
 .../db2/class-use/DB2EJBQLTranslatorFactory.html   |   13 +-
 .../cayenne/dba/db2/class-use/DB2PkGenerator.html  |   13 +-
 .../dba/db2/class-use/DB2SQLTreeProcessor.html     |   13 +-
 .../cayenne/dba/db2/class-use/DB2SelectAction.html |   13 +-
 .../cayenne/dba/db2/class-use/DB2Sniffer.html      |   13 +-
 .../apache/cayenne/dba/db2/package-summary.html    |   13 +-
 .../org/apache/cayenne/dba/db2/package-tree.html   |   13 +-
 .../org/apache/cayenne/dba/db2/package-use.html    |   13 +-
 .../cayenne/dba/derby/DerbyActionBuilder.html      |   13 +-
 .../org/apache/cayenne/dba/derby/DerbyAdapter.html |   13 +-
 .../dba/derby/DerbyEJBQLConditionTranslator.html   |   13 +-
 .../dba/derby/DerbyEJBQLTranslatorFactory.html     |   13 +-
 .../apache/cayenne/dba/derby/DerbyPkGenerator.html |   13 +-
 .../cayenne/dba/derby/DerbySQLTreeProcessor.html   |   13 +-
 .../cayenne/dba/derby/DerbySelectAction.html       |   13 +-
 .../org/apache/cayenne/dba/derby/DerbySniffer.html |   13 +-
 .../dba/derby/class-use/DerbyActionBuilder.html    |   13 +-
 .../cayenne/dba/derby/class-use/DerbyAdapter.html  |   13 +-
 .../class-use/DerbyEJBQLConditionTranslator.html   |   13 +-
 .../class-use/DerbyEJBQLTranslatorFactory.html     |   13 +-
 .../dba/derby/class-use/DerbyPkGenerator.html      |   13 +-
 .../dba/derby/class-use/DerbySQLTreeProcessor.html |   13 +-
 .../dba/derby/class-use/DerbySelectAction.html     |   13 +-
 .../cayenne/dba/derby/class-use/DerbySniffer.html  |   13 +-
 .../apache/cayenne/dba/derby/package-summary.html  |   13 +-
 .../org/apache/cayenne/dba/derby/package-tree.html |   13 +-
 .../org/apache/cayenne/dba/derby/package-use.html  |   13 +-
 .../cayenne/dba/derby/sqltree/DerbyValueNode.html  |   13 +-
 .../derby/sqltree/class-use/DerbyValueNode.html    |   13 +-
 .../cayenne/dba/derby/sqltree/package-summary.html |   13 +-
 .../cayenne/dba/derby/sqltree/package-tree.html    |   13 +-
 .../cayenne/dba/derby/sqltree/package-use.html     |   13 +-
 .../dba/firebird/FirebirdActionBuilder.html        |   13 +-
 .../cayenne/dba/firebird/FirebirdAdapter.html      |   13 +-
 .../firebird/FirebirdEJBQLConditionTranslator.html |   13 +-
 .../firebird/FirebirdEJBQLTranslatorFactory.html   |   13 +-
 .../dba/firebird/FirebirdSQLTreeProcessor.html     |   13 +-
 .../cayenne/dba/firebird/FirebirdSelectAction.html |   13 +-
 .../cayenne/dba/firebird/FirebirdSniffer.html      |   13 +-
 .../firebird/class-use/FirebirdActionBuilder.html  |   13 +-
 .../dba/firebird/class-use/FirebirdAdapter.html    |   13 +-
 .../FirebirdEJBQLConditionTranslator.html          |   13 +-
 .../class-use/FirebirdEJBQLTranslatorFactory.html  |   13 +-
 .../class-use/FirebirdSQLTreeProcessor.html        |   13 +-
 .../firebird/class-use/FirebirdSelectAction.html   |   13 +-
 .../dba/firebird/class-use/FirebirdSniffer.html    |   13 +-
 .../cayenne/dba/firebird/package-summary.html      |   13 +-
 .../apache/cayenne/dba/firebird/package-tree.html  |   13 +-
 .../apache/cayenne/dba/firebird/package-use.html   |   13 +-
 .../dba/firebird/sqltree/FirebirdLimitNode.html    |   13 +-
 .../sqltree/FirebirdSubstringFunctionNode.html     |   13 +-
 .../sqltree/class-use/FirebirdLimitNode.html       |   13 +-
 .../class-use/FirebirdSubstringFunctionNode.html   |   13 +-
 .../dba/firebird/sqltree/package-summary.html      |   13 +-
 .../cayenne/dba/firebird/sqltree/package-tree.html |   13 +-
 .../cayenne/dba/firebird/sqltree/package-use.html  |   13 +-
 .../dba/frontbase/FrontBaseActionBuilder.html      |   13 +-
 .../cayenne/dba/frontbase/FrontBaseAdapter.html    |   13 +-
 .../dba/frontbase/FrontBasePkGenerator.html        |   13 +-
 .../dba/frontbase/FrontBaseSQLTreeProcessor.html   |   13 +-
 .../cayenne/dba/frontbase/FrontBaseSniffer.html    |   13 +-
 .../dba/frontbase/FrontBaseTemplateAction.html     |   13 +-
 .../class-use/FrontBaseActionBuilder.html          |   13 +-
 .../dba/frontbase/class-use/FrontBaseAdapter.html  |   13 +-
 .../frontbase/class-use/FrontBasePkGenerator.html  |   13 +-
 .../class-use/FrontBaseSQLTreeProcessor.html       |   13 +-
 .../dba/frontbase/class-use/FrontBaseSniffer.html  |   13 +-
 .../class-use/FrontBaseTemplateAction.html         |   13 +-
 .../cayenne/dba/frontbase/package-summary.html     |   13 +-
 .../apache/cayenne/dba/frontbase/package-tree.html |   13 +-
 .../apache/cayenne/dba/frontbase/package-use.html  |   13 +-
 .../org/apache/cayenne/dba/h2/H2ActionBuilder.html |   13 +-
 .../api/org/apache/cayenne/dba/h2/H2Adapter.html   |   13 +-
 .../api/org/apache/cayenne/dba/h2/H2CharType.html  |   13 +-
 .../org/apache/cayenne/dba/h2/H2PkGenerator.html   |   13 +-
 .../apache/cayenne/dba/h2/H2SQLTreeProcessor.html  |   13 +-
 .../org/apache/cayenne/dba/h2/H2SelectAction.html  |   13 +-
 .../api/org/apache/cayenne/dba/h2/H2Sniffer.html   |   13 +-
 .../cayenne/dba/h2/class-use/H2ActionBuilder.html  |   13 +-
 .../apache/cayenne/dba/h2/class-use/H2Adapter.html |   13 +-
 .../cayenne/dba/h2/class-use/H2CharType.html       |   13 +-
 .../cayenne/dba/h2/class-use/H2PkGenerator.html    |   13 +-
 .../dba/h2/class-use/H2SQLTreeProcessor.html       |   13 +-
 .../cayenne/dba/h2/class-use/H2SelectAction.html   |   13 +-
 .../apache/cayenne/dba/h2/class-use/H2Sniffer.html |   13 +-
 .../org/apache/cayenne/dba/h2/package-summary.html |   13 +-
 .../org/apache/cayenne/dba/h2/package-tree.html    |   13 +-
 .../api/org/apache/cayenne/dba/h2/package-use.html |   13 +-
 .../apache/cayenne/dba/hsqldb/HSQLDBAdapter.html   |   13 +-
 .../cayenne/dba/hsqldb/HSQLDBNoSchemaAdapter.html  |   13 +-
 .../dba/hsqldb/HSQLDBProcedureTranslator.html      |   13 +-
 .../apache/cayenne/dba/hsqldb/HSQLDBSniffer.html   |   13 +-
 .../dba/hsqldb/HSQLEJBQLConditionTranslator.html   |   13 +-
 .../dba/hsqldb/HSQLEJBQLTranslatorFactory.html     |   13 +-
 .../cayenne/dba/hsqldb/HSQLTreeProcessor.html      |   13 +-
 .../dba/hsqldb/class-use/HSQLDBAdapter.html        |   13 +-
 .../hsqldb/class-use/HSQLDBNoSchemaAdapter.html    |   13 +-
 .../class-use/HSQLDBProcedureTranslator.html       |   13 +-
 .../dba/hsqldb/class-use/HSQLDBSniffer.html        |   13 +-
 .../class-use/HSQLEJBQLConditionTranslator.html    |   13 +-
 .../class-use/HSQLEJBQLTranslatorFactory.html      |   13 +-
 .../dba/hsqldb/class-use/HSQLTreeProcessor.html    |   13 +-
 .../apache/cayenne/dba/hsqldb/package-summary.html |   13 +-
 .../apache/cayenne/dba/hsqldb/package-tree.html    |   13 +-
 .../org/apache/cayenne/dba/hsqldb/package-use.html |   13 +-
 .../cayenne/dba/ingres/IngresActionBuilder.html    |   13 +-
 .../apache/cayenne/dba/ingres/IngresAdapter.html   |   13 +-
 .../cayenne/dba/ingres/IngresBooleanType.html      |   13 +-
 .../cayenne/dba/ingres/IngresPkGenerator.html      |   13 +-
 .../cayenne/dba/ingres/IngresSelectAction.html     |   13 +-
 .../apache/cayenne/dba/ingres/IngresSniffer.html   |   13 +-
 .../dba/ingres/IngressSQLTreeProcessor.html        |   13 +-
 .../dba/ingres/class-use/IngresActionBuilder.html  |   13 +-
 .../dba/ingres/class-use/IngresAdapter.html        |   13 +-
 .../dba/ingres/class-use/IngresBooleanType.html    |   13 +-
 .../dba/ingres/class-use/IngresPkGenerator.html    |   13 +-
 .../dba/ingres/class-use/IngresSelectAction.html   |   13 +-
 .../dba/ingres/class-use/IngresSniffer.html        |   13 +-
 .../ingres/class-use/IngressSQLTreeProcessor.html  |   13 +-
 .../apache/cayenne/dba/ingres/package-summary.html |   13 +-
 .../apache/cayenne/dba/ingres/package-tree.html    |   13 +-
 .../org/apache/cayenne/dba/ingres/package-use.html |   13 +-
 .../apache/cayenne/dba/mariadb/MariaDBSniffer.html |   13 +-
 .../dba/mariadb/class-use/MariaDBSniffer.html      |   13 +-
 .../cayenne/dba/mariadb/package-summary.html       |   13 +-
 .../apache/cayenne/dba/mariadb/package-tree.html   |   13 +-
 .../apache/cayenne/dba/mariadb/package-use.html    |   13 +-
 .../org/apache/cayenne/dba/mysql/MySQLAdapter.html |   13 +-
 .../apache/cayenne/dba/mysql/MySQLPkGenerator.html |   13 +-
 .../org/apache/cayenne/dba/mysql/MySQLSniffer.html |   13 +-
 .../cayenne/dba/mysql/MySQLTreeProcessor.html      |   13 +-
 .../cayenne/dba/mysql/class-use/MySQLAdapter.html  |   13 +-
 .../dba/mysql/class-use/MySQLPkGenerator.html      |   13 +-
 .../cayenne/dba/mysql/class-use/MySQLSniffer.html  |   13 +-
 .../dba/mysql/class-use/MySQLTreeProcessor.html    |   13 +-
 .../apache/cayenne/dba/mysql/package-summary.html  |   13 +-
 .../org/apache/cayenne/dba/mysql/package-tree.html |   13 +-
 .../org/apache/cayenne/dba/mysql/package-use.html  |   13 +-
 .../cayenne/dba/mysql/sqltree/ConvertNode.html     |   13 +-
 .../cayenne/dba/mysql/sqltree/MysqlLikeNode.html   |   13 +-
 .../dba/mysql/sqltree/MysqlLimitOffsetNode.html    |   13 +-
 .../dba/mysql/sqltree/class-use/ConvertNode.html   |   13 +-
 .../dba/mysql/sqltree/class-use/MysqlLikeNode.html |   13 +-
 .../sqltree/class-use/MysqlLimitOffsetNode.html    |   13 +-
 .../cayenne/dba/mysql/sqltree/package-summary.html |   13 +-
 .../cayenne/dba/mysql/sqltree/package-tree.html    |   13 +-
 .../cayenne/dba/mysql/sqltree/package-use.html     |   13 +-
 .../cayenne/dba/openbase/OpenBaseAdapter.html      |   13 +-
 .../cayenne/dba/openbase/OpenBasePkGenerator.html  |   13 +-
 .../dba/openbase/OpenBaseSQLTreeProcessor.html     |   13 +-
 .../cayenne/dba/openbase/OpenBaseSniffer.html      |   13 +-
 .../dba/openbase/class-use/OpenBaseAdapter.html    |   13 +-
 .../openbase/class-use/OpenBasePkGenerator.html    |   13 +-
 .../class-use/OpenBaseSQLTreeProcessor.html        |   13 +-
 .../dba/openbase/class-use/OpenBaseSniffer.html    |   13 +-
 .../cayenne/dba/openbase/package-summary.html      |   13 +-
 .../apache/cayenne/dba/openbase/package-tree.html  |   13 +-
 .../apache/cayenne/dba/openbase/package-use.html   |   13 +-
 .../apache/cayenne/dba/oracle/Oracle8Adapter.html  |   13 +-
 .../apache/cayenne/dba/oracle/OracleAdapter.html   |   13 +-
 .../cayenne/dba/oracle/OracleByteArrayType.html    |   13 +-
 .../apache/cayenne/dba/oracle/OracleCharType.html  |   13 +-
 .../cayenne/dba/oracle/OraclePkGenerator.html      |   13 +-
 .../cayenne/dba/oracle/OracleSQLTreeProcessor.html |   13 +-
 .../apache/cayenne/dba/oracle/OracleSniffer.html   |   13 +-
 .../cayenne/dba/oracle/OracleUtilDateType.html     |   13 +-
 .../dba/oracle/class-use/Oracle8Adapter.html       |   13 +-
 .../dba/oracle/class-use/OracleAdapter.html        |   13 +-
 .../dba/oracle/class-use/OracleByteArrayType.html  |   13 +-
 .../dba/oracle/class-use/OracleCharType.html       |   13 +-
 .../dba/oracle/class-use/OraclePkGenerator.html    |   13 +-
 .../oracle/class-use/OracleSQLTreeProcessor.html   |   13 +-
 .../dba/oracle/class-use/OracleSniffer.html        |   13 +-
 .../dba/oracle/class-use/OracleUtilDateType.html   |   13 +-
 .../apache/cayenne/dba/oracle/package-summary.html |   13 +-
 .../apache/cayenne/dba/oracle/package-tree.html    |   13 +-
 .../org/apache/cayenne/dba/oracle/package-use.html |   13 +-
 .../org/apache/cayenne/dba/package-summary.html    |   13 +-
 .../api/org/apache/cayenne/dba/package-tree.html   |   13 +-
 .../api/org/apache/cayenne/dba/package-use.html    |   13 +-
 .../dba/postgres/PostgreSQLTreeProcessor.html      |   13 +-
 .../cayenne/dba/postgres/PostgresAdapter.html      |   13 +-
 .../cayenne/dba/postgres/PostgresBatchAction.html  |   13 +-
 .../cayenne/dba/postgres/PostgresPkGenerator.html  |   13 +-
 .../cayenne/dba/postgres/PostgresSniffer.html      |   13 +-
 .../class-use/PostgreSQLTreeProcessor.html         |   13 +-
 .../dba/postgres/class-use/PostgresAdapter.html    |   13 +-
 .../postgres/class-use/PostgresBatchAction.html    |   13 +-
 .../postgres/class-use/PostgresPkGenerator.html    |   13 +-
 .../dba/postgres/class-use/PostgresSniffer.html    |   13 +-
 .../cayenne/dba/postgres/package-summary.html      |   13 +-
 .../apache/cayenne/dba/postgres/package-tree.html  |   13 +-
 .../apache/cayenne/dba/postgres/package-use.html   |   13 +-
 .../dba/postgres/sqltree/PositionFunctionNode.html |   13 +-
 .../sqltree/PostgresExtractFunctionNode.html       |   13 +-
 .../dba/postgres/sqltree/PostgresLikeNode.html     |   13 +-
 .../postgres/sqltree/PostgresLimitOffsetNode.html  |   13 +-
 .../sqltree/class-use/PositionFunctionNode.html    |   13 +-
 .../class-use/PostgresExtractFunctionNode.html     |   13 +-
 .../sqltree/class-use/PostgresLikeNode.html        |   13 +-
 .../sqltree/class-use/PostgresLimitOffsetNode.html |   13 +-
 .../dba/postgres/sqltree/package-summary.html      |   13 +-
 .../cayenne/dba/postgres/sqltree/package-tree.html |   13 +-
 .../cayenne/dba/postgres/sqltree/package-use.html  |   13 +-
 .../apache/cayenne/dba/sqlite/SQLiteAdapter.html   |   13 +-
 .../cayenne/dba/sqlite/SQLiteSelectAction.html     |   13 +-
 .../apache/cayenne/dba/sqlite/SQLiteSniffer.html   |   13 +-
 .../cayenne/dba/sqlite/SQLiteTreeProcessor.html    |   13 +-
 .../dba/sqlite/class-use/SQLiteAdapter.html        |   13 +-
 .../dba/sqlite/class-use/SQLiteSelectAction.html   |   13 +-
 .../dba/sqlite/class-use/SQLiteSniffer.html        |   13 +-
 .../dba/sqlite/class-use/SQLiteTreeProcessor.html  |   13 +-
 .../apache/cayenne/dba/sqlite/package-summary.html |   13 +-
 .../apache/cayenne/dba/sqlite/package-tree.html    |   13 +-
 .../org/apache/cayenne/dba/sqlite/package-use.html |   13 +-
 .../dba/sqlserver/SQLServerActionBuilder.html      |   13 +-
 .../cayenne/dba/sqlserver/SQLServerAdapter.html    |   13 +-
 .../dba/sqlserver/SQLServerBatchAction.html        |   13 +-
 .../dba/sqlserver/SQLServerPkGenerator.html        |   13 +-
 .../dba/sqlserver/SQLServerProcedureAction.html    |   13 +-
 .../dba/sqlserver/SQLServerSelectAction.html       |   13 +-
 .../cayenne/dba/sqlserver/SQLServerSniffer.html    |   13 +-
 .../dba/sqlserver/SQLServerTreeProcessor.html      |   13 +-
 .../dba/sqlserver/SQLServerTreeProcessorV12.html   |   13 +-
 .../class-use/SQLServerActionBuilder.html          |   13 +-
 .../dba/sqlserver/class-use/SQLServerAdapter.html  |   13 +-
 .../sqlserver/class-use/SQLServerBatchAction.html  |   13 +-
 .../sqlserver/class-use/SQLServerPkGenerator.html  |   13 +-
 .../class-use/SQLServerProcedureAction.html        |   13 +-
 .../sqlserver/class-use/SQLServerSelectAction.html |   13 +-
 .../dba/sqlserver/class-use/SQLServerSniffer.html  |   13 +-
 .../class-use/SQLServerTreeProcessor.html          |   13 +-
 .../class-use/SQLServerTreeProcessorV12.html       |   13 +-
 .../cayenne/dba/sqlserver/package-summary.html     |   13 +-
 .../apache/cayenne/dba/sqlserver/package-tree.html |   13 +-
 .../apache/cayenne/dba/sqlserver/package-use.html  |   13 +-
 .../dba/sqlserver/sqltree/SQLServerColumnNode.html |   13 +-
 .../sqltree/SQLServerLimitOffsetNode.html          |   13 +-
 .../sqltree/class-use/SQLServerColumnNode.html     |   13 +-
 .../class-use/SQLServerLimitOffsetNode.html        |   13 +-
 .../dba/sqlserver/sqltree/package-summary.html     |   13 +-
 .../dba/sqlserver/sqltree/package-tree.html        |   13 +-
 .../cayenne/dba/sqlserver/sqltree/package-use.html |   13 +-
 .../apache/cayenne/dba/sybase/SybaseAdapter.html   |   13 +-
 .../cayenne/dba/sybase/SybasePkGenerator.html      |   13 +-
 .../cayenne/dba/sybase/SybaseSQLTreeProcessor.html |   13 +-
 .../apache/cayenne/dba/sybase/SybaseSniffer.html   |   13 +-
 .../dba/sybase/class-use/SybaseAdapter.html        |   13 +-
 .../dba/sybase/class-use/SybasePkGenerator.html    |   13 +-
 .../sybase/class-use/SybaseSQLTreeProcessor.html   |   13 +-
 .../dba/sybase/class-use/SybaseSniffer.html        |   13 +-
 .../apache/cayenne/dba/sybase/package-summary.html |   13 +-
 .../apache/cayenne/dba/sybase/package-tree.html    |   13 +-
 .../org/apache/cayenne/dba/sybase/package-use.html |   13 +-
 .../org/apache/cayenne/di/AdhocObjectFactory.html  |   13 +-
 .../api/org/apache/cayenne/di/BeforeScopeEnd.html  |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Binder.html     |   13 +-
 .../api/org/apache/cayenne/di/BindingBuilder.html  |   13 +-
 .../org/apache/cayenne/di/ClassLoaderManager.html  |   13 +-
 .../4.2/api/org/apache/cayenne/di/DIBootstrap.html |   13 +-
 .../org/apache/cayenne/di/DIRuntimeException.html  |   13 +-
 .../org/apache/cayenne/di/DecoratorBuilder.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Inject.html     |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Injector.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Key.html        |   13 +-
 .../4.2/api/org/apache/cayenne/di/ListBuilder.html |   13 +-
 docs/4.2/api/org/apache/cayenne/di/MapBuilder.html |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Module.html     |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Provider.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/di/Scope.html      |   13 +-
 .../org/apache/cayenne/di/ScopeEventListener.html  |   13 +-
 .../cayenne/di/class-use/AdhocObjectFactory.html   |   13 +-
 .../cayenne/di/class-use/BeforeScopeEnd.html       |   13 +-
 .../org/apache/cayenne/di/class-use/Binder.html    |   13 +-
 .../cayenne/di/class-use/BindingBuilder.html       |   13 +-
 .../cayenne/di/class-use/ClassLoaderManager.html   |   13 +-
 .../apache/cayenne/di/class-use/DIBootstrap.html   |   13 +-
 .../cayenne/di/class-use/DIRuntimeException.html   |   13 +-
 .../cayenne/di/class-use/DecoratorBuilder.html     |   13 +-
 .../org/apache/cayenne/di/class-use/Inject.html    |   13 +-
 .../org/apache/cayenne/di/class-use/Injector.html  |   13 +-
 .../api/org/apache/cayenne/di/class-use/Key.html   |   13 +-
 .../apache/cayenne/di/class-use/ListBuilder.html   |   13 +-
 .../apache/cayenne/di/class-use/MapBuilder.html    |   13 +-
 .../org/apache/cayenne/di/class-use/Module.html    |   13 +-
 .../org/apache/cayenne/di/class-use/Provider.html  |   13 +-
 .../api/org/apache/cayenne/di/class-use/Scope.html |   13 +-
 .../cayenne/di/class-use/ScopeEventListener.html   |   13 +-
 .../api/org/apache/cayenne/di/package-summary.html |   13 +-
 .../api/org/apache/cayenne/di/package-tree.html    |   13 +-
 .../4.2/api/org/apache/cayenne/di/package-use.html |   13 +-
 .../spi/ConstructorInjectingDecoratorProvider.html |   13 +-
 .../apache/cayenne/di/spi/DICollectionBuilder.html |   13 +-
 .../cayenne/di/spi/DefaultAdhocObjectFactory.html  |   13 +-
 .../cayenne/di/spi/DefaultClassLoaderManager.html  |   13 +-
 .../org/apache/cayenne/di/spi/DefaultInjector.html |   13 +-
 .../org/apache/cayenne/di/spi/DefaultScope.html    |   13 +-
 .../cayenne/di/spi/DefaultScopeProvider.html       |   13 +-
 .../org/apache/cayenne/di/spi/ModuleLoader.html    |   13 +-
 .../org/apache/cayenne/di/spi/ModuleProvider.html  |   13 +-
 .../apache/cayenne/di/spi/ScopeEventBinding.html   |   13 +-
 .../ConstructorInjectingDecoratorProvider.html     |   13 +-
 .../di/spi/class-use/DICollectionBuilder.html      |   13 +-
 .../spi/class-use/DefaultAdhocObjectFactory.html   |   13 +-
 .../spi/class-use/DefaultClassLoaderManager.html   |   13 +-
 .../cayenne/di/spi/class-use/DefaultInjector.html  |   13 +-
 .../cayenne/di/spi/class-use/DefaultScope.html     |   13 +-
 .../di/spi/class-use/DefaultScopeProvider.html     |   13 +-
 .../cayenne/di/spi/class-use/ModuleLoader.html     |   13 +-
 .../cayenne/di/spi/class-use/ModuleProvider.html   |   13 +-
 .../di/spi/class-use/ScopeEventBinding.html        |   13 +-
 .../org/apache/cayenne/di/spi/package-summary.html |   13 +-
 .../org/apache/cayenne/di/spi/package-tree.html    |   13 +-
 .../api/org/apache/cayenne/di/spi/package-use.html |   13 +-
 .../org/apache/cayenne/ejbql/EJBQLBaseVisitor.html |   13 +-
 .../cayenne/ejbql/EJBQLCompiledExpression.html     |   13 +-
 .../org/apache/cayenne/ejbql/EJBQLException.html   |   13 +-
 .../org/apache/cayenne/ejbql/EJBQLExpression.html  |   13 +-
 .../cayenne/ejbql/EJBQLExpressionVisitor.html      |   13 +-
 .../api/org/apache/cayenne/ejbql/EJBQLParser.html  |   13 +-
 .../apache/cayenne/ejbql/EJBQLParserFactory.html   |   13 +-
 .../cayenne/ejbql/class-use/EJBQLBaseVisitor.html  |   13 +-
 .../ejbql/class-use/EJBQLCompiledExpression.html   |   13 +-
 .../cayenne/ejbql/class-use/EJBQLException.html    |   13 +-
 .../cayenne/ejbql/class-use/EJBQLExpression.html   |   13 +-
 .../ejbql/class-use/EJBQLExpressionVisitor.html    |   13 +-
 .../cayenne/ejbql/class-use/EJBQLParser.html       |   13 +-
 .../ejbql/class-use/EJBQLParserFactory.html        |   13 +-
 .../org/apache/cayenne/ejbql/package-summary.html  |   13 +-
 .../api/org/apache/cayenne/ejbql/package-tree.html |   13 +-
 .../api/org/apache/cayenne/ejbql/package-use.html  |   13 +-
 .../ejbql/parser/AggregateConditionNode.html       |   13 +-
 .../ejbql/parser/EJBQL.EJBQLDefaultParser.html     |   13 +-
 .../api/org/apache/cayenne/ejbql/parser/EJBQL.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLAbs.html  |   13 +-
 .../ejbql/parser/EJBQLAbstractSchemaName.html      |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLAdd.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLAggregate.html       |   13 +-
 .../cayenne/ejbql/parser/EJBQLAggregateColumn.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLAll.html  |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLAnd.html  |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLAny.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLAscending.html       |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLAverage.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLBetween.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLBooleanLiteral.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLClassName.html       |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLConcat.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLConstants.html       |   13 +-
 .../cayenne/ejbql/parser/EJBQLConstructor.html     |   13 +-
 .../ejbql/parser/EJBQLConstructorParameter.html    |   13 +-
 .../ejbql/parser/EJBQLConstructorParameters.html   |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLCount.html    |   13 +-
 .../cayenne/ejbql/parser/EJBQLCurrentDate.html     |   13 +-
 .../cayenne/ejbql/parser/EJBQLCurrentTime.html     |   13 +-
 .../ejbql/parser/EJBQLCurrentTimestamp.html        |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLDbPath.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLDecimalLiteral.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLDelete.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLDescending.html      |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLDistinct.html |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLDivide.html   |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLEquals.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLEscapeCharacter.html |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLExists.html   |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLFrom.html |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLFromItem.html |   13 +-
 .../cayenne/ejbql/parser/EJBQLGreaterOrEqual.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLGreaterThan.html     |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLGroupBy.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLHaving.html   |   13 +-
 .../ejbql/parser/EJBQLIdentificationVariable.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLIdentifier.html      |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLIn.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLInnerFetchJoin.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLInnerJoin.html       |   13 +-
 .../cayenne/ejbql/parser/EJBQLIntegerLiteral.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLIsEmpty.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLIsNull.html   |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLJoin.html |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLLength.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLLessOrEqual.html     |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLLessThan.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLLike.html |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLLocate.html   |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLLower.html    |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLMax.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLMemberOf.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLMin.html  |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLMod.html  |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLMultiply.html |   13 +-
 .../ejbql/parser/EJBQLNamedInputParameter.html     |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLNegative.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLNot.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLNotEquals.html       |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLOr.html   |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLOrderBy.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLOrderByItem.html     |   13 +-
 .../cayenne/ejbql/parser/EJBQLOuterFetchJoin.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLOuterJoin.html       |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLPath.html |   13 +-
 .../cayenne/ejbql/parser/EJBQLPatternValue.html    |   13 +-
 .../parser/EJBQLPositionalInputParameter.html      |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLSelect.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLSelectClause.html    |   13 +-
 .../ejbql/parser/EJBQLSelectExpression.html        |   13 +-
 .../ejbql/parser/EJBQLSelectExpressions.html       |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLSize.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLSqrt.html |   13 +-
 .../cayenne/ejbql/parser/EJBQLStringLiteral.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLSubselect.html       |   13 +-
 .../cayenne/ejbql/parser/EJBQLSubstring.html       |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLSubtract.html |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLSum.html  |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLTok.html  |   13 +-
 .../cayenne/ejbql/parser/EJBQLTokenManager.html    |   13 +-
 .../cayenne/ejbql/parser/EJBQLTreeConstants.html   |   13 +-
 .../org/apache/cayenne/ejbql/parser/EJBQLTrim.html |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLTrimBoth.html |   13 +-
 .../cayenne/ejbql/parser/EJBQLTrimCharacter.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLTrimLeading.html     |   13 +-
 .../ejbql/parser/EJBQLTrimSpecification.html       |   13 +-
 .../cayenne/ejbql/parser/EJBQLTrimTrailing.html    |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLUpdate.html   |   13 +-
 .../cayenne/ejbql/parser/EJBQLUpdateField.html     |   13 +-
 .../cayenne/ejbql/parser/EJBQLUpdateItem.html      |   13 +-
 .../cayenne/ejbql/parser/EJBQLUpdateValue.html     |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLUpper.html    |   13 +-
 .../apache/cayenne/ejbql/parser/EJBQLWhere.html    |   13 +-
 .../apache/cayenne/ejbql/parser/JJTEJBQLState.html |   13 +-
 .../cayenne/ejbql/parser/JavaCharStream.html       |   13 +-
 .../api/org/apache/cayenne/ejbql/parser/Node.html  |   13 +-
 .../cayenne/ejbql/parser/ParseException.html       |   13 +-
 .../apache/cayenne/ejbql/parser/SimpleNode.html    |   13 +-
 .../api/org/apache/cayenne/ejbql/parser/Token.html |   13 +-
 .../apache/cayenne/ejbql/parser/TokenMgrError.html |   13 +-
 .../parser/class-use/AggregateConditionNode.html   |   13 +-
 .../parser/class-use/EJBQL.EJBQLDefaultParser.html |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQL.html      |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLAbs.html   |   13 +-
 .../parser/class-use/EJBQLAbstractSchemaName.html  |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLAdd.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLAggregate.html     |   13 +-
 .../parser/class-use/EJBQLAggregateColumn.html     |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLAll.html   |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLAnd.html   |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLAny.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLAscending.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLAverage.html       |   13 +-
 .../ejbql/parser/class-use/EJBQLBetween.html       |   13 +-
 .../parser/class-use/EJBQLBooleanLiteral.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLClassName.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLConcat.html        |   13 +-
 .../ejbql/parser/class-use/EJBQLConstants.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLConstructor.html   |   13 +-
 .../class-use/EJBQLConstructorParameter.html       |   13 +-
 .../class-use/EJBQLConstructorParameters.html      |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLCount.html |   13 +-
 .../ejbql/parser/class-use/EJBQLCurrentDate.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLCurrentTime.html   |   13 +-
 .../parser/class-use/EJBQLCurrentTimestamp.html    |   13 +-
 .../ejbql/parser/class-use/EJBQLDbPath.html        |   13 +-
 .../parser/class-use/EJBQLDecimalLiteral.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLDelete.html        |   13 +-
 .../ejbql/parser/class-use/EJBQLDescending.html    |   13 +-
 .../ejbql/parser/class-use/EJBQLDistinct.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLDivide.html        |   13 +-
 .../ejbql/parser/class-use/EJBQLEquals.html        |   13 +-
 .../parser/class-use/EJBQLEscapeCharacter.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLExists.html        |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLFrom.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLFromItem.html      |   13 +-
 .../parser/class-use/EJBQLGreaterOrEqual.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLGreaterThan.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLGroupBy.html       |   13 +-
 .../ejbql/parser/class-use/EJBQLHaving.html        |   13 +-
 .../class-use/EJBQLIdentificationVariable.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLIdentifier.html    |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLIn.html    |   13 +-
 .../parser/class-use/EJBQLInnerFetchJoin.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLInnerJoin.html     |   13 +-
 .../parser/class-use/EJBQLIntegerLiteral.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLIsEmpty.html       |   13 +-
 .../ejbql/parser/class-use/EJBQLIsNull.html        |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLJoin.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLLength.html        |   13 +-
 .../ejbql/parser/class-use/EJBQLLessOrEqual.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLLessThan.html      |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLLike.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLLocate.html        |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLLower.html |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLMax.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLMemberOf.html      |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLMin.html   |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLMod.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLMultiply.html      |   13 +-
 .../parser/class-use/EJBQLNamedInputParameter.html |   13 +-
 .../ejbql/parser/class-use/EJBQLNegative.html      |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLNot.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLNotEquals.html     |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLOr.html    |   13 +-
 .../ejbql/parser/class-use/EJBQLOrderBy.html       |   13 +-
 .../ejbql/parser/class-use/EJBQLOrderByItem.html   |   13 +-
 .../parser/class-use/EJBQLOuterFetchJoin.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLOuterJoin.html     |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLPath.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLPatternValue.html  |   13 +-
 .../class-use/EJBQLPositionalInputParameter.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLSelect.html        |   13 +-
 .../ejbql/parser/class-use/EJBQLSelectClause.html  |   13 +-
 .../parser/class-use/EJBQLSelectExpression.html    |   13 +-
 .../parser/class-use/EJBQLSelectExpressions.html   |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLSize.html  |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLSqrt.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLStringLiteral.html |   13 +-
 .../ejbql/parser/class-use/EJBQLSubselect.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLSubstring.html     |   13 +-
 .../ejbql/parser/class-use/EJBQLSubtract.html      |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLSum.html   |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLTok.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLTokenManager.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLTreeConstants.html |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLTrim.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLTrimBoth.html      |   13 +-
 .../ejbql/parser/class-use/EJBQLTrimCharacter.html |   13 +-
 .../ejbql/parser/class-use/EJBQLTrimLeading.html   |   13 +-
 .../parser/class-use/EJBQLTrimSpecification.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLTrimTrailing.html  |   13 +-
 .../ejbql/parser/class-use/EJBQLUpdate.html        |   13 +-
 .../ejbql/parser/class-use/EJBQLUpdateField.html   |   13 +-
 .../ejbql/parser/class-use/EJBQLUpdateItem.html    |   13 +-
 .../ejbql/parser/class-use/EJBQLUpdateValue.html   |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLUpper.html |   13 +-
 .../cayenne/ejbql/parser/class-use/EJBQLWhere.html |   13 +-
 .../ejbql/parser/class-use/JJTEJBQLState.html      |   13 +-
 .../ejbql/parser/class-use/JavaCharStream.html     |   13 +-
 .../cayenne/ejbql/parser/class-use/Node.html       |   13 +-
 .../ejbql/parser/class-use/ParseException.html     |   13 +-
 .../cayenne/ejbql/parser/class-use/SimpleNode.html |   13 +-
 .../cayenne/ejbql/parser/class-use/Token.html      |   13 +-
 .../ejbql/parser/class-use/TokenMgrError.html      |   13 +-
 .../cayenne/ejbql/parser/package-summary.html      |   13 +-
 .../apache/cayenne/ejbql/parser/package-tree.html  |   13 +-
 .../apache/cayenne/ejbql/parser/package-use.html   |   13 +-
 .../api/org/apache/cayenne/event/CayenneEvent.html |   13 +-
 .../apache/cayenne/event/DefaultEventManager.html  |   13 +-
 .../api/org/apache/cayenne/event/EventBridge.html  |   13 +-
 .../apache/cayenne/event/EventBridgeFactory.html   |   13 +-
 .../api/org/apache/cayenne/event/EventManager.html |   13 +-
 .../apache/cayenne/event/EventManagerProvider.html |   13 +-
 .../api/org/apache/cayenne/event/EventSubject.html |   13 +-
 .../org/apache/cayenne/event/NoopEventBridge.html  |   13 +-
 .../cayenne/event/NoopEventBridgeProvider.html     |   13 +-
 .../org/apache/cayenne/event/NoopEventManager.html |   13 +-
 .../cayenne/event/class-use/CayenneEvent.html      |   13 +-
 .../event/class-use/DefaultEventManager.html       |   13 +-
 .../cayenne/event/class-use/EventBridge.html       |   13 +-
 .../event/class-use/EventBridgeFactory.html        |   13 +-
 .../cayenne/event/class-use/EventManager.html      |   13 +-
 .../event/class-use/EventManagerProvider.html      |   13 +-
 .../cayenne/event/class-use/EventSubject.html      |   13 +-
 .../cayenne/event/class-use/NoopEventBridge.html   |   13 +-
 .../event/class-use/NoopEventBridgeProvider.html   |   13 +-
 .../cayenne/event/class-use/NoopEventManager.html  |   13 +-
 .../org/apache/cayenne/event/package-summary.html  |   13 +-
 .../api/org/apache/cayenne/event/package-tree.html |   13 +-
 .../api/org/apache/cayenne/event/package-use.html  |   13 +-
 .../4.2/api/org/apache/cayenne/exp/Expression.html |   13 +-
 .../apache/cayenne/exp/ExpressionException.html    |   13 +-
 .../org/apache/cayenne/exp/ExpressionFactory.html  |   13 +-
 .../apache/cayenne/exp/ExpressionParameter.html    |   13 +-
 .../cayenne/exp/FunctionExpressionFactory.html     |   13 +-
 docs/4.2/api/org/apache/cayenne/exp/Property.html  |   13 +-
 .../org/apache/cayenne/exp/TraversalHandler.html   |   13 +-
 .../org/apache/cayenne/exp/TraversalHelper.html    |   13 +-
 .../api/org/apache/cayenne/exp/ValueInjector.html  |   13 +-
 .../apache/cayenne/exp/class-use/Expression.html   |   13 +-
 .../cayenne/exp/class-use/ExpressionException.html |   13 +-
 .../cayenne/exp/class-use/ExpressionFactory.html   |   13 +-
 .../cayenne/exp/class-use/ExpressionParameter.html |   13 +-
 .../exp/class-use/FunctionExpressionFactory.html   |   13 +-
 .../org/apache/cayenne/exp/class-use/Property.html |   13 +-
 .../cayenne/exp/class-use/TraversalHandler.html    |   13 +-
 .../cayenne/exp/class-use/TraversalHelper.html     |   13 +-
 .../cayenne/exp/class-use/ValueInjector.html       |   13 +-
 .../org/apache/cayenne/exp/package-summary.html    |   13 +-
 .../api/org/apache/cayenne/exp/package-tree.html   |   13 +-
 .../api/org/apache/cayenne/exp/package-use.html    |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTAbs.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTAdd.html  |   13 +-
 .../exp/parser/ASTAggregateFunctionCall.html       |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTAnd.html  |   13 +-
 .../org/apache/cayenne/exp/parser/ASTAsterisk.html |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTAvg.html  |   13 +-
 .../org/apache/cayenne/exp/parser/ASTBetween.html  |   13 +-
 .../apache/cayenne/exp/parser/ASTBitwiseAnd.html   |   13 +-
 .../cayenne/exp/parser/ASTBitwiseLeftShift.html    |   13 +-
 .../apache/cayenne/exp/parser/ASTBitwiseNot.html   |   13 +-
 .../apache/cayenne/exp/parser/ASTBitwiseOr.html    |   13 +-
 .../cayenne/exp/parser/ASTBitwiseRightShift.html   |   13 +-
 .../apache/cayenne/exp/parser/ASTBitwiseXor.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTConcat.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTCount.html    |   13 +-
 .../apache/cayenne/exp/parser/ASTCurrentDate.html  |   13 +-
 .../apache/cayenne/exp/parser/ASTCurrentTime.html  |   13 +-
 .../cayenne/exp/parser/ASTCurrentTimestamp.html    |   13 +-
 .../cayenne/exp/parser/ASTCustomFunction.html      |   13 +-
 .../cayenne/exp/parser/ASTCustomOperator.html      |   13 +-
 .../org/apache/cayenne/exp/parser/ASTDbIdPath.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTDbPath.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTDistinct.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTDivide.html   |   13 +-
 .../cayenne/exp/parser/ASTEnclosingObject.html     |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTEnum.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTEqual.html    |   13 +-
 .../org/apache/cayenne/exp/parser/ASTExists.html   |   13 +-
 .../exp/parser/ASTExtract.DateTimePart.html        |   13 +-
 .../org/apache/cayenne/exp/parser/ASTExtract.html  |   13 +-
 .../org/apache/cayenne/exp/parser/ASTFalse.html    |   13 +-
 .../apache/cayenne/exp/parser/ASTFullObject.html   |   13 +-
 .../apache/cayenne/exp/parser/ASTFunctionCall.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTGreater.html  |   13 +-
 .../cayenne/exp/parser/ASTGreaterOrEqual.html      |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTIn.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTLength.html   |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTLess.html |   13 +-
 .../apache/cayenne/exp/parser/ASTLessOrEqual.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTLike.html |   13 +-
 .../cayenne/exp/parser/ASTLikeIgnoreCase.html      |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTList.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTLocate.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTLower.html    |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTMax.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTMin.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTMod.html  |   13 +-
 .../org/apache/cayenne/exp/parser/ASTMultiply.html |   13 +-
 .../cayenne/exp/parser/ASTNamedParameter.html      |   13 +-
 .../org/apache/cayenne/exp/parser/ASTNegate.html   |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTNot.html  |   13 +-
 .../apache/cayenne/exp/parser/ASTNotBetween.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTNotEqual.html |   13 +-
 .../apache/cayenne/exp/parser/ASTNotExists.html    |   13 +-
 .../org/apache/cayenne/exp/parser/ASTNotIn.html    |   13 +-
 .../org/apache/cayenne/exp/parser/ASTNotLike.html  |   13 +-
 .../cayenne/exp/parser/ASTNotLikeIgnoreCase.html   |   13 +-
 .../org/apache/cayenne/exp/parser/ASTObjPath.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTOr.html   |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTPath.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTScalar.html   |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTSqrt.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTSubquery.html |   13 +-
 .../apache/cayenne/exp/parser/ASTSubstring.html    |   13 +-
 .../org/apache/cayenne/exp/parser/ASTSubtract.html |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTSum.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTTrim.html |   13 +-
 .../api/org/apache/cayenne/exp/parser/ASTTrue.html |   13 +-
 .../org/apache/cayenne/exp/parser/ASTUpper.html    |   13 +-
 .../cayenne/exp/parser/AggregateConditionNode.html |   13 +-
 .../apache/cayenne/exp/parser/ConditionNode.html   |   13 +-
 .../cayenne/exp/parser/EvaluatedBitwiseNode.html   |   13 +-
 .../cayenne/exp/parser/EvaluatedMathNode.html      |   13 +-
 .../apache/cayenne/exp/parser/EvaluatedNode.html   |   13 +-
 .../cayenne/exp/parser/ExpressionParser.html       |   13 +-
 .../exp/parser/ExpressionParserConstants.html      |   13 +-
 .../exp/parser/ExpressionParserTokenManager.html   |   13 +-
 .../exp/parser/ExpressionParserTreeConstants.html  |   13 +-
 .../exp/parser/JJTExpressionParserState.html       |   13 +-
 .../apache/cayenne/exp/parser/JavaCharStream.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/Node.html    |   13 +-
 .../apache/cayenne/exp/parser/ParseException.html  |   13 +-
 .../cayenne/exp/parser/PatternMatchNode.html       |   13 +-
 .../org/apache/cayenne/exp/parser/SimpleNode.html  |   13 +-
 .../api/org/apache/cayenne/exp/parser/Token.html   |   13 +-
 .../apache/cayenne/exp/parser/TokenMgrError.html   |   13 +-
 .../cayenne/exp/parser/class-use/ASTAbs.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTAdd.html       |   13 +-
 .../parser/class-use/ASTAggregateFunctionCall.html |   13 +-
 .../cayenne/exp/parser/class-use/ASTAnd.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTAsterisk.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTAvg.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTBetween.html   |   13 +-
 .../exp/parser/class-use/ASTBitwiseAnd.html        |   13 +-
 .../exp/parser/class-use/ASTBitwiseLeftShift.html  |   13 +-
 .../exp/parser/class-use/ASTBitwiseNot.html        |   13 +-
 .../cayenne/exp/parser/class-use/ASTBitwiseOr.html |   13 +-
 .../exp/parser/class-use/ASTBitwiseRightShift.html |   13 +-
 .../exp/parser/class-use/ASTBitwiseXor.html        |   13 +-
 .../cayenne/exp/parser/class-use/ASTConcat.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTCount.html     |   13 +-
 .../exp/parser/class-use/ASTCurrentDate.html       |   13 +-
 .../exp/parser/class-use/ASTCurrentTime.html       |   13 +-
 .../exp/parser/class-use/ASTCurrentTimestamp.html  |   13 +-
 .../exp/parser/class-use/ASTCustomFunction.html    |   13 +-
 .../exp/parser/class-use/ASTCustomOperator.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTDbIdPath.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTDbPath.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTDistinct.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTDivide.html    |   13 +-
 .../exp/parser/class-use/ASTEnclosingObject.html   |   13 +-
 .../cayenne/exp/parser/class-use/ASTEnum.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTEqual.html     |   13 +-
 .../cayenne/exp/parser/class-use/ASTExists.html    |   13 +-
 .../parser/class-use/ASTExtract.DateTimePart.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTExtract.html   |   13 +-
 .../cayenne/exp/parser/class-use/ASTFalse.html     |   13 +-
 .../exp/parser/class-use/ASTFullObject.html        |   13 +-
 .../exp/parser/class-use/ASTFunctionCall.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTGreater.html   |   13 +-
 .../exp/parser/class-use/ASTGreaterOrEqual.html    |   13 +-
 .../apache/cayenne/exp/parser/class-use/ASTIn.html |   13 +-
 .../cayenne/exp/parser/class-use/ASTLength.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTLess.html      |   13 +-
 .../exp/parser/class-use/ASTLessOrEqual.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTLike.html      |   13 +-
 .../exp/parser/class-use/ASTLikeIgnoreCase.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTList.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTLocate.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTLower.html     |   13 +-
 .../cayenne/exp/parser/class-use/ASTMax.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTMin.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTMod.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTMultiply.html  |   13 +-
 .../exp/parser/class-use/ASTNamedParameter.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTNegate.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTNot.html       |   13 +-
 .../exp/parser/class-use/ASTNotBetween.html        |   13 +-
 .../cayenne/exp/parser/class-use/ASTNotEqual.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTNotExists.html |   13 +-
 .../cayenne/exp/parser/class-use/ASTNotIn.html     |   13 +-
 .../cayenne/exp/parser/class-use/ASTNotLike.html   |   13 +-
 .../exp/parser/class-use/ASTNotLikeIgnoreCase.html |   13 +-
 .../cayenne/exp/parser/class-use/ASTObjPath.html   |   13 +-
 .../apache/cayenne/exp/parser/class-use/ASTOr.html |   13 +-
 .../cayenne/exp/parser/class-use/ASTPath.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTScalar.html    |   13 +-
 .../cayenne/exp/parser/class-use/ASTSqrt.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTSubquery.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTSubstring.html |   13 +-
 .../cayenne/exp/parser/class-use/ASTSubtract.html  |   13 +-
 .../cayenne/exp/parser/class-use/ASTSum.html       |   13 +-
 .../cayenne/exp/parser/class-use/ASTTrim.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTTrue.html      |   13 +-
 .../cayenne/exp/parser/class-use/ASTUpper.html     |   13 +-
 .../parser/class-use/AggregateConditionNode.html   |   13 +-
 .../exp/parser/class-use/ConditionNode.html        |   13 +-
 .../exp/parser/class-use/EvaluatedBitwiseNode.html |   13 +-
 .../exp/parser/class-use/EvaluatedMathNode.html    |   13 +-
 .../exp/parser/class-use/EvaluatedNode.html        |   13 +-
 .../exp/parser/class-use/ExpressionParser.html     |   13 +-
 .../class-use/ExpressionParserConstants.html       |   13 +-
 .../class-use/ExpressionParserTokenManager.html    |   13 +-
 .../class-use/ExpressionParserTreeConstants.html   |   13 +-
 .../parser/class-use/JJTExpressionParserState.html |   13 +-
 .../exp/parser/class-use/JavaCharStream.html       |   13 +-
 .../apache/cayenne/exp/parser/class-use/Node.html  |   13 +-
 .../exp/parser/class-use/ParseException.html       |   13 +-
 .../exp/parser/class-use/PatternMatchNode.html     |   13 +-
 .../cayenne/exp/parser/class-use/SimpleNode.html   |   13 +-
 .../apache/cayenne/exp/parser/class-use/Token.html |   13 +-
 .../exp/parser/class-use/TokenMgrError.html        |   13 +-
 .../apache/cayenne/exp/parser/package-summary.html |   13 +-
 .../apache/cayenne/exp/parser/package-tree.html    |   13 +-
 .../org/apache/cayenne/exp/parser/package-use.html |   13 +-
 .../cayenne/exp/property/BaseIdProperty.html       |   13 +-
 .../apache/cayenne/exp/property/BaseProperty.html  |   13 +-
 .../cayenne/exp/property/CollectionProperty.html   |   13 +-
 .../cayenne/exp/property/ComparableProperty.html   |   13 +-
 .../apache/cayenne/exp/property/DateProperty.html  |   13 +-
 .../cayenne/exp/property/EmbeddableProperty.html   |   13 +-
 .../cayenne/exp/property/EntityProperty.html       |   13 +-
 .../apache/cayenne/exp/property/IdProperty.html    |   13 +-
 .../apache/cayenne/exp/property/ListProperty.html  |   13 +-
 .../apache/cayenne/exp/property/MapProperty.html   |   13 +-
 .../cayenne/exp/property/NumericIdProperty.html    |   13 +-
 .../cayenne/exp/property/NumericProperty.html      |   13 +-
 .../apache/cayenne/exp/property/PathProperty.html  |   13 +-
 .../org/apache/cayenne/exp/property/Property.html  |   13 +-
 .../cayenne/exp/property/PropertyFactory.html      |   13 +-
 .../cayenne/exp/property/RelationshipProperty.html |   13 +-
 .../apache/cayenne/exp/property/SetProperty.html   |   13 +-
 .../cayenne/exp/property/StringProperty.html       |   13 +-
 .../exp/property/class-use/BaseIdProperty.html     |   13 +-
 .../exp/property/class-use/BaseProperty.html       |   13 +-
 .../exp/property/class-use/CollectionProperty.html |   13 +-
 .../exp/property/class-use/ComparableProperty.html |   13 +-
 .../exp/property/class-use/DateProperty.html       |   13 +-
 .../exp/property/class-use/EmbeddableProperty.html |   13 +-
 .../exp/property/class-use/EntityProperty.html     |   13 +-
 .../cayenne/exp/property/class-use/IdProperty.html |   13 +-
 .../exp/property/class-use/ListProperty.html       |   13 +-
 .../exp/property/class-use/MapProperty.html        |   13 +-
 .../exp/property/class-use/NumericIdProperty.html  |   13 +-
 .../exp/property/class-use/NumericProperty.html    |   13 +-
 .../exp/property/class-use/PathProperty.html       |   13 +-
 .../cayenne/exp/property/class-use/Property.html   |   13 +-
 .../exp/property/class-use/PropertyFactory.html    |   13 +-
 .../property/class-use/RelationshipProperty.html   |   13 +-
 .../exp/property/class-use/SetProperty.html        |   13 +-
 .../exp/property/class-use/StringProperty.html     |   13 +-
 .../cayenne/exp/property/package-summary.html      |   13 +-
 .../apache/cayenne/exp/property/package-tree.html  |   13 +-
 .../apache/cayenne/exp/property/package-use.html   |   13 +-
 .../apache/cayenne/graph/ArcCreateOperation.html   |   13 +-
 .../apache/cayenne/graph/ArcDeleteOperation.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/graph/ArcId.html   |   13 +-
 .../org/apache/cayenne/graph/ChildDiffLoader.html  |   13 +-
 .../api/org/apache/cayenne/graph/CompoundDiff.html |   13 +-
 .../apache/cayenne/graph/GraphChangeHandler.html   |   13 +-
 .../api/org/apache/cayenne/graph/GraphDiff.html    |   13 +-
 .../apache/cayenne/graph/GraphDiffCompressor.html  |   13 +-
 .../api/org/apache/cayenne/graph/GraphEvent.html   |   13 +-
 .../api/org/apache/cayenne/graph/GraphManager.html |   13 +-
 .../4.2/api/org/apache/cayenne/graph/GraphMap.html |   13 +-
 .../apache/cayenne/graph/NodeCreateOperation.html  |   13 +-
 .../apache/cayenne/graph/NodeDeleteOperation.html  |   13 +-
 .../4.2/api/org/apache/cayenne/graph/NodeDiff.html |   13 +-
 .../cayenne/graph/NodeIdChangeOperation.html       |   13 +-
 .../cayenne/graph/NodePropertyChangeOperation.html |   13 +-
 .../graph/class-use/ArcCreateOperation.html        |   13 +-
 .../graph/class-use/ArcDeleteOperation.html        |   13 +-
 .../org/apache/cayenne/graph/class-use/ArcId.html  |   13 +-
 .../cayenne/graph/class-use/ChildDiffLoader.html   |   13 +-
 .../cayenne/graph/class-use/CompoundDiff.html      |   13 +-
 .../graph/class-use/GraphChangeHandler.html        |   13 +-
 .../apache/cayenne/graph/class-use/GraphDiff.html  |   13 +-
 .../graph/class-use/GraphDiffCompressor.html       |   13 +-
 .../apache/cayenne/graph/class-use/GraphEvent.html |   13 +-
 .../cayenne/graph/class-use/GraphManager.html      |   13 +-
 .../apache/cayenne/graph/class-use/GraphMap.html   |   13 +-
 .../graph/class-use/NodeCreateOperation.html       |   13 +-
 .../graph/class-use/NodeDeleteOperation.html       |   13 +-
 .../apache/cayenne/graph/class-use/NodeDiff.html   |   13 +-
 .../graph/class-use/NodeIdChangeOperation.html     |   13 +-
 .../class-use/NodePropertyChangeOperation.html     |   13 +-
 .../org/apache/cayenne/graph/package-summary.html  |   13 +-
 .../api/org/apache/cayenne/graph/package-tree.html |   13 +-
 .../api/org/apache/cayenne/graph/package-use.html  |   13 +-
 .../cayenne/log/CompactSlf4jJdbcEventLogger.html   |   13 +-
 .../cayenne/log/FormattedSlf4jJdbcEventLogger.html |   13 +-
 .../org/apache/cayenne/log/JdbcEventLogger.html    |   13 +-
 .../apache/cayenne/log/NoopJdbcEventLogger.html    |   13 +-
 .../apache/cayenne/log/Slf4jJdbcEventLogger.html   |   13 +-
 .../log/class-use/CompactSlf4jJdbcEventLogger.html |   13 +-
 .../class-use/FormattedSlf4jJdbcEventLogger.html   |   13 +-
 .../cayenne/log/class-use/JdbcEventLogger.html     |   13 +-
 .../cayenne/log/class-use/NoopJdbcEventLogger.html |   13 +-
 .../log/class-use/Slf4jJdbcEventLogger.html        |   13 +-
 .../org/apache/cayenne/log/package-summary.html    |   13 +-
 .../api/org/apache/cayenne/log/package-tree.html   |   13 +-
 .../api/org/apache/cayenne/log/package-use.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/map/Attribute.html |   13 +-
 .../org/apache/cayenne/map/CallbackDescriptor.html |   13 +-
 .../api/org/apache/cayenne/map/CallbackMap.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/map/DataMap.html   |   13 +-
 .../api/org/apache/cayenne/map/DbAttribute.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/map/DbEntity.html  |   13 +-
 docs/4.2/api/org/apache/cayenne/map/DbJoin.html    |   13 +-
 .../api/org/apache/cayenne/map/DbKeyGenerator.html |   13 +-
 .../api/org/apache/cayenne/map/DbRelationship.html |   13 +-
 .../cayenne/map/DefaultEntityResultSegment.html    |   13 +-
 .../cayenne/map/DefaultScalarResultSegment.html    |   13 +-
 .../4.2/api/org/apache/cayenne/map/DeleteRule.html |   13 +-
 .../apache/cayenne/map/EJBQLQueryDescriptor.html   |   13 +-
 .../4.2/api/org/apache/cayenne/map/Embeddable.html |   13 +-
 .../apache/cayenne/map/EmbeddableAttribute.html    |   13 +-
 .../org/apache/cayenne/map/EmbeddedAttribute.html  |   13 +-
 .../api/org/apache/cayenne/map/EmbeddedResult.html |   13 +-
 docs/4.2/api/org/apache/cayenne/map/Entity.html    |   13 +-
 .../apache/cayenne/map/EntityInheritanceTree.html  |   13 +-
 .../api/org/apache/cayenne/map/EntityResolver.html |   13 +-
 .../api/org/apache/cayenne/map/EntityResult.html   |   13 +-
 .../api/org/apache/cayenne/map/EntitySorter.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/map/JoinType.html  |   13 +-
 .../api/org/apache/cayenne/map/LifecycleEvent.html |   13 +-
 .../org/apache/cayenne/map/MappingNamespace.html   |   13 +-
 .../api/org/apache/cayenne/map/ObjAttribute.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/map/ObjEntity.html |   13 +-
 .../org/apache/cayenne/map/ObjRelationship.html    |   13 +-
 .../api/org/apache/cayenne/map/PathComponent.html  |   13 +-
 docs/4.2/api/org/apache/cayenne/map/Procedure.html |   13 +-
 .../org/apache/cayenne/map/ProcedureParameter.html |   13 +-
 .../cayenne/map/ProcedureQueryDescriptor.html      |   13 +-
 .../org/apache/cayenne/map/QueryDescriptor.html    |   13 +-
 .../apache/cayenne/map/QueryDescriptorLoader.html  |   13 +-
 .../api/org/apache/cayenne/map/Relationship.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/map/SQLResult.html |   13 +-
 .../apache/cayenne/map/SQLTemplateDescriptor.html  |   13 +-
 .../apache/cayenne/map/SelectQueryDescriptor.html  |   13 +-
 .../apache/cayenne/map/class-use/Attribute.html    |   13 +-
 .../cayenne/map/class-use/CallbackDescriptor.html  |   13 +-
 .../apache/cayenne/map/class-use/CallbackMap.html  |   13 +-
 .../org/apache/cayenne/map/class-use/DataMap.html  |   13 +-
 .../apache/cayenne/map/class-use/DbAttribute.html  |   13 +-
 .../org/apache/cayenne/map/class-use/DbEntity.html |   13 +-
 .../org/apache/cayenne/map/class-use/DbJoin.html   |   13 +-
 .../cayenne/map/class-use/DbKeyGenerator.html      |   13 +-
 .../cayenne/map/class-use/DbRelationship.html      |   13 +-
 .../map/class-use/DefaultEntityResultSegment.html  |   13 +-
 .../map/class-use/DefaultScalarResultSegment.html  |   13 +-
 .../apache/cayenne/map/class-use/DeleteRule.html   |   13 +-
 .../map/class-use/EJBQLQueryDescriptor.html        |   13 +-
 .../apache/cayenne/map/class-use/Embeddable.html   |   13 +-
 .../cayenne/map/class-use/EmbeddableAttribute.html |   13 +-
 .../cayenne/map/class-use/EmbeddedAttribute.html   |   13 +-
 .../cayenne/map/class-use/EmbeddedResult.html      |   13 +-
 .../org/apache/cayenne/map/class-use/Entity.html   |   13 +-
 .../map/class-use/EntityInheritanceTree.html       |   13 +-
 .../cayenne/map/class-use/EntityResolver.html      |   13 +-
 .../apache/cayenne/map/class-use/EntityResult.html |   13 +-
 .../apache/cayenne/map/class-use/EntitySorter.html |   13 +-
 .../org/apache/cayenne/map/class-use/JoinType.html |   13 +-
 .../cayenne/map/class-use/LifecycleEvent.html      |   13 +-
 .../cayenne/map/class-use/MappingNamespace.html    |   13 +-
 .../apache/cayenne/map/class-use/ObjAttribute.html |   13 +-
 .../apache/cayenne/map/class-use/ObjEntity.html    |   13 +-
 .../cayenne/map/class-use/ObjRelationship.html     |   13 +-
 .../cayenne/map/class-use/PathComponent.html       |   13 +-
 .../apache/cayenne/map/class-use/Procedure.html    |   13 +-
 .../cayenne/map/class-use/ProcedureParameter.html  |   13 +-
 .../map/class-use/ProcedureQueryDescriptor.html    |   13 +-
 .../cayenne/map/class-use/QueryDescriptor.html     |   13 +-
 .../map/class-use/QueryDescriptorLoader.html       |   13 +-
 .../apache/cayenne/map/class-use/Relationship.html |   13 +-
 .../apache/cayenne/map/class-use/SQLResult.html    |   13 +-
 .../map/class-use/SQLTemplateDescriptor.html       |   13 +-
 .../map/class-use/SelectQueryDescriptor.html       |   13 +-
 .../apache/cayenne/map/event/AttributeEvent.html   |   13 +-
 .../cayenne/map/event/DbAttributeListener.html     |   13 +-
 .../apache/cayenne/map/event/DbEntityListener.html |   13 +-
 .../cayenne/map/event/DbRelationshipListener.html  |   13 +-
 .../map/event/EmbeddableAttributeEvent.html        |   13 +-
 .../map/event/EmbeddableAttributeListener.html     |   13 +-
 .../apache/cayenne/map/event/EmbeddableEvent.html  |   13 +-
 .../cayenne/map/event/EmbeddableListener.html      |   13 +-
 .../org/apache/cayenne/map/event/EntityEvent.html  |   13 +-
 .../api/org/apache/cayenne/map/event/MapEvent.html |   13 +-
 .../cayenne/map/event/ObjAttributeListener.html    |   13 +-
 .../cayenne/map/event/ObjEntityListener.html       |   13 +-
 .../cayenne/map/event/ObjRelationshipListener.html |   13 +-
 .../cayenne/map/event/RelationshipEvent.html       |   13 +-
 .../map/event/class-use/AttributeEvent.html        |   13 +-
 .../map/event/class-use/DbAttributeListener.html   |   13 +-
 .../map/event/class-use/DbEntityListener.html      |   13 +-
 .../event/class-use/DbRelationshipListener.html    |   13 +-
 .../event/class-use/EmbeddableAttributeEvent.html  |   13 +-
 .../class-use/EmbeddableAttributeListener.html     |   13 +-
 .../map/event/class-use/EmbeddableEvent.html       |   13 +-
 .../map/event/class-use/EmbeddableListener.html    |   13 +-
 .../cayenne/map/event/class-use/EntityEvent.html   |   13 +-
 .../cayenne/map/event/class-use/MapEvent.html      |   13 +-
 .../map/event/class-use/ObjAttributeListener.html  |   13 +-
 .../map/event/class-use/ObjEntityListener.html     |   13 +-
 .../event/class-use/ObjRelationshipListener.html   |   13 +-
 .../map/event/class-use/RelationshipEvent.html     |   13 +-
 .../apache/cayenne/map/event/package-summary.html  |   13 +-
 .../org/apache/cayenne/map/event/package-tree.html |   13 +-
 .../org/apache/cayenne/map/event/package-use.html  |   13 +-
 .../org/apache/cayenne/map/package-summary.html    |   13 +-
 .../api/org/apache/cayenne/map/package-tree.html   |   13 +-
 .../api/org/apache/cayenne/map/package-use.html    |   13 +-
 .../api/org/apache/cayenne/package-summary.html    |   13 +-
 docs/4.2/api/org/apache/cayenne/package-tree.html  |   13 +-
 docs/4.2/api/org/apache/cayenne/package-use.html   |   13 +-
 .../apache/cayenne/query/AbstractMappedQuery.html  |   13 +-
 .../org/apache/cayenne/query/AbstractQuery.html    |   13 +-
 .../api/org/apache/cayenne/query/BatchQuery.html   |   13 +-
 .../org/apache/cayenne/query/BatchQueryRow.html    |   13 +-
 .../org/apache/cayenne/query/CacheableQuery.html   |   13 +-
 .../api/org/apache/cayenne/query/CapsStrategy.html |   13 +-
 .../api/org/apache/cayenne/query/ColumnSelect.html |   13 +-
 .../query/DefaultEmbeddableResultSegment.html      |   13 +-
 .../org/apache/cayenne/query/DeleteBatchQuery.html |   13 +-
 .../api/org/apache/cayenne/query/EJBQLQuery.html   |   13 +-
 .../cayenne/query/EmbeddableResultSegment.html     |   13 +-
 .../apache/cayenne/query/EntityResultSegment.html  |   13 +-
 .../api/org/apache/cayenne/query/FluentSelect.html |   13 +-
 .../org/apache/cayenne/query/IndirectQuery.html    |   13 +-
 .../org/apache/cayenne/query/InsertBatchQuery.html |   13 +-
 .../api/org/apache/cayenne/query/MappedExec.html   |   13 +-
 .../api/org/apache/cayenne/query/MappedSelect.html |   13 +-
 .../org/apache/cayenne/query/ObjectIdQuery.html    |   13 +-
 .../api/org/apache/cayenne/query/ObjectSelect.html |   13 +-
 .../4.2/api/org/apache/cayenne/query/Ordering.html |   13 +-
 .../api/org/apache/cayenne/query/Orderings.html    |   13 +-
 .../apache/cayenne/query/ParameterizedQuery.html   |   13 +-
 .../apache/cayenne/query/PrefetchProcessor.html    |   13 +-
 .../apache/cayenne/query/PrefetchSelectQuery.html  |   13 +-
 .../org/apache/cayenne/query/PrefetchTreeNode.html |   13 +-
 .../org/apache/cayenne/query/ProcedureCall.html    |   13 +-
 .../org/apache/cayenne/query/ProcedureQuery.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/query/Query.html   |   13 +-
 .../apache/cayenne/query/QueryCacheStrategy.html   |   13 +-
 .../api/org/apache/cayenne/query/QueryChain.html   |   13 +-
 .../org/apache/cayenne/query/QueryMetadata.html    |   13 +-
 .../apache/cayenne/query/QueryMetadataProxy.html   |   13 +-
 .../api/org/apache/cayenne/query/QueryRouter.html  |   13 +-
 .../api/org/apache/cayenne/query/RefreshQuery.html |   13 +-
 .../apache/cayenne/query/RelationshipQuery.html    |   13 +-
 .../api/org/apache/cayenne/query/SQLAction.html    |   13 +-
 .../org/apache/cayenne/query/SQLActionVisitor.html |   13 +-
 docs/4.2/api/org/apache/cayenne/query/SQLExec.html |   13 +-
 .../api/org/apache/cayenne/query/SQLSelect.html    |   13 +-
 .../api/org/apache/cayenne/query/SQLTemplate.html  |   13 +-
 .../apache/cayenne/query/SQLTemplateMetadata.html  |   13 +-
 .../apache/cayenne/query/ScalarResultSegment.html  |   13 +-
 docs/4.2/api/org/apache/cayenne/query/Select.html  |   13 +-
 .../apache/cayenne/query/SelectById.IdSpec.html    |   13 +-
 .../cayenne/query/SelectById.MultiMapIdSpec.html   |   13 +-
 .../query/SelectById.MultiScalarIdSpec.html        |   13 +-
 .../apache/cayenne/query/SelectById.QueryRoot.html |   13 +-
 .../cayenne/query/SelectById.SingleMapIdSpec.html  |   13 +-
 .../query/SelectById.SingleScalarIdSpec.html       |   13 +-
 .../api/org/apache/cayenne/query/SelectById.html   |   13 +-
 .../api/org/apache/cayenne/query/SelectQuery.html  |   13 +-
 .../api/org/apache/cayenne/query/SortOrder.html    |   13 +-
 .../org/apache/cayenne/query/UpdateBatchQuery.html |   13 +-
 .../query/class-use/AbstractMappedQuery.html       |   13 +-
 .../cayenne/query/class-use/AbstractQuery.html     |   13 +-
 .../apache/cayenne/query/class-use/BatchQuery.html |   13 +-
 .../cayenne/query/class-use/BatchQueryRow.html     |   13 +-
 .../cayenne/query/class-use/CacheableQuery.html    |   13 +-
 .../cayenne/query/class-use/CapsStrategy.html      |   13 +-
 .../cayenne/query/class-use/ColumnSelect.html      |   13 +-
 .../class-use/DefaultEmbeddableResultSegment.html  |   13 +-
 .../cayenne/query/class-use/DeleteBatchQuery.html  |   13 +-
 .../apache/cayenne/query/class-use/EJBQLQuery.html |   13 +-
 .../query/class-use/EmbeddableResultSegment.html   |   13 +-
 .../query/class-use/EntityResultSegment.html       |   13 +-
 .../cayenne/query/class-use/FluentSelect.html      |   13 +-
 .../cayenne/query/class-use/IndirectQuery.html     |   13 +-
 .../cayenne/query/class-use/InsertBatchQuery.html  |   13 +-
 .../apache/cayenne/query/class-use/MappedExec.html |   13 +-
 .../cayenne/query/class-use/MappedSelect.html      |   13 +-
 .../cayenne/query/class-use/ObjectIdQuery.html     |   13 +-
 .../cayenne/query/class-use/ObjectSelect.html      |   13 +-
 .../apache/cayenne/query/class-use/Ordering.html   |   13 +-
 .../apache/cayenne/query/class-use/Orderings.html  |   13 +-
 .../query/class-use/ParameterizedQuery.html        |   13 +-
 .../cayenne/query/class-use/PrefetchProcessor.html |   13 +-
 .../query/class-use/PrefetchSelectQuery.html       |   13 +-
 .../cayenne/query/class-use/PrefetchTreeNode.html  |   13 +-
 .../cayenne/query/class-use/ProcedureCall.html     |   13 +-
 .../cayenne/query/class-use/ProcedureQuery.html    |   13 +-
 .../org/apache/cayenne/query/class-use/Query.html  |   13 +-
 .../query/class-use/QueryCacheStrategy.html        |   13 +-
 .../apache/cayenne/query/class-use/QueryChain.html |   13 +-
 .../cayenne/query/class-use/QueryMetadata.html     |   13 +-
 .../query/class-use/QueryMetadataProxy.html        |   13 +-
 .../cayenne/query/class-use/QueryRouter.html       |   13 +-
 .../cayenne/query/class-use/RefreshQuery.html      |   13 +-
 .../cayenne/query/class-use/RelationshipQuery.html |   13 +-
 .../apache/cayenne/query/class-use/SQLAction.html  |   13 +-
 .../cayenne/query/class-use/SQLActionVisitor.html  |   13 +-
 .../apache/cayenne/query/class-use/SQLExec.html    |   13 +-
 .../apache/cayenne/query/class-use/SQLSelect.html  |   13 +-
 .../cayenne/query/class-use/SQLTemplate.html       |   13 +-
 .../query/class-use/SQLTemplateMetadata.html       |   13 +-
 .../query/class-use/ScalarResultSegment.html       |   13 +-
 .../org/apache/cayenne/query/class-use/Select.html |   13 +-
 .../cayenne/query/class-use/SelectById.IdSpec.html |   13 +-
 .../query/class-use/SelectById.MultiMapIdSpec.html |   13 +-
 .../class-use/SelectById.MultiScalarIdSpec.html    |   13 +-
 .../query/class-use/SelectById.QueryRoot.html      |   13 +-
 .../class-use/SelectById.SingleMapIdSpec.html      |   13 +-
 .../class-use/SelectById.SingleScalarIdSpec.html   |   13 +-
 .../apache/cayenne/query/class-use/SelectById.html |   13 +-
 .../cayenne/query/class-use/SelectQuery.html       |   13 +-
 .../apache/cayenne/query/class-use/SortOrder.html  |   13 +-
 .../cayenne/query/class-use/UpdateBatchQuery.html  |   13 +-
 .../org/apache/cayenne/query/package-summary.html  |   13 +-
 .../api/org/apache/cayenne/query/package-tree.html |   13 +-
 .../api/org/apache/cayenne/query/package-use.html  |   13 +-
 .../api/org/apache/cayenne/reflect/Accessor.html   |   13 +-
 .../apache/cayenne/reflect/AccessorFactory.html    |   13 +-
 .../org/apache/cayenne/reflect/ArcProperty.html    |   13 +-
 .../apache/cayenne/reflect/AttributeProperty.html  |   13 +-
 .../apache/cayenne/reflect/BaseArcProperty.html    |   13 +-
 .../org/apache/cayenne/reflect/BaseProperty.html   |   13 +-
 .../apache/cayenne/reflect/BaseToManyProperty.html |   13 +-
 .../apache/cayenne/reflect/BaseToOneProperty.html  |   13 +-
 .../org/apache/cayenne/reflect/BeanAccessor.html   |   13 +-
 .../apache/cayenne/reflect/ClassDescriptor.html    |   13 +-
 .../cayenne/reflect/ClassDescriptorFactory.html    |   13 +-
 .../apache/cayenne/reflect/ClassDescriptorMap.html |   13 +-
 .../api/org/apache/cayenne/reflect/Converter.html  |   13 +-
 .../apache/cayenne/reflect/ConverterFactory.html   |   13 +-
 .../cayenne/reflect/EmbeddableDescriptor.html      |   13 +-
 .../cayenne/reflect/EmbeddedFieldAccessor.html     |   13 +-
 .../org/apache/cayenne/reflect/FaultFactory.html   |   13 +-
 .../org/apache/cayenne/reflect/FieldAccessor.html  |   13 +-
 .../cayenne/reflect/FieldEmbeddableDescriptor.html |   13 +-
 .../apache/cayenne/reflect/IdMapKeyAccessor.html   |   13 +-
 .../reflect/LazyClassDescriptorDecorator.html      |   13 +-
 .../cayenne/reflect/LifecycleCallbackRegistry.html |   13 +-
 .../org/apache/cayenne/reflect/MapAccessor.html    |   13 +-
 .../cayenne/reflect/PersistentDescriptor.html      |   13 +-
 .../reflect/PersistentDescriptorFactory.html       |   13 +-
 .../api/org/apache/cayenne/reflect/PojoMapper.html |   13 +-
 .../api/org/apache/cayenne/reflect/Property.html   |   13 +-
 .../apache/cayenne/reflect/PropertyAccessor.html   |   13 +-
 .../apache/cayenne/reflect/PropertyDescriptor.html |   13 +-
 .../apache/cayenne/reflect/PropertyException.html  |   13 +-
 .../org/apache/cayenne/reflect/PropertyUtils.html  |   13 +-
 .../apache/cayenne/reflect/PropertyVisitor.html    |   13 +-
 .../cayenne/reflect/SimpleAttributeProperty.html   |   13 +-
 .../cayenne/reflect/SingletonFaultFactory.html     |   13 +-
 .../org/apache/cayenne/reflect/ToAnyConverter.html |   13 +-
 .../apache/cayenne/reflect/ToManyMapProperty.html  |   13 +-
 .../org/apache/cayenne/reflect/ToManyProperty.html |   13 +-
 .../org/apache/cayenne/reflect/ToOneProperty.html  |   13 +-
 .../cayenne/reflect/UnresolvablePathException.html |   13 +-
 .../apache/cayenne/reflect/class-use/Accessor.html |   13 +-
 .../cayenne/reflect/class-use/AccessorFactory.html |   13 +-
 .../cayenne/reflect/class-use/ArcProperty.html     |   13 +-
 .../reflect/class-use/AttributeProperty.html       |   13 +-
 .../cayenne/reflect/class-use/BaseArcProperty.html |   13 +-
 .../cayenne/reflect/class-use/BaseProperty.html    |   13 +-
 .../reflect/class-use/BaseToManyProperty.html      |   13 +-
 .../reflect/class-use/BaseToOneProperty.html       |   13 +-
 .../cayenne/reflect/class-use/BeanAccessor.html    |   13 +-
 .../cayenne/reflect/class-use/ClassDescriptor.html |   13 +-
 .../reflect/class-use/ClassDescriptorFactory.html  |   13 +-
 .../reflect/class-use/ClassDescriptorMap.html      |   13 +-
 .../cayenne/reflect/class-use/Converter.html       |   13 +-
 .../reflect/class-use/ConverterFactory.html        |   13 +-
 .../reflect/class-use/EmbeddableDescriptor.html    |   13 +-
 .../reflect/class-use/EmbeddedFieldAccessor.html   |   13 +-
 .../cayenne/reflect/class-use/FaultFactory.html    |   13 +-
 .../cayenne/reflect/class-use/FieldAccessor.html   |   13 +-
 .../class-use/FieldEmbeddableDescriptor.html       |   13 +-
 .../reflect/class-use/IdMapKeyAccessor.html        |   13 +-
 .../class-use/LazyClassDescriptorDecorator.html    |   13 +-
 .../class-use/LifecycleCallbackRegistry.html       |   13 +-
 .../cayenne/reflect/class-use/MapAccessor.html     |   13 +-
 .../reflect/class-use/PersistentDescriptor.html    |   13 +-
 .../class-use/PersistentDescriptorFactory.html     |   13 +-
 .../cayenne/reflect/class-use/PojoMapper.html      |   13 +-
 .../apache/cayenne/reflect/class-use/Property.html |   13 +-
 .../reflect/class-use/PropertyAccessor.html        |   13 +-
 .../reflect/class-use/PropertyDescriptor.html      |   13 +-
 .../reflect/class-use/PropertyException.html       |   13 +-
 .../cayenne/reflect/class-use/PropertyUtils.html   |   13 +-
 .../cayenne/reflect/class-use/PropertyVisitor.html |   13 +-
 .../reflect/class-use/SimpleAttributeProperty.html |   13 +-
 .../reflect/class-use/SingletonFaultFactory.html   |   13 +-
 .../cayenne/reflect/class-use/ToAnyConverter.html  |   13 +-
 .../reflect/class-use/ToManyMapProperty.html       |   13 +-
 .../cayenne/reflect/class-use/ToManyProperty.html  |   13 +-
 .../cayenne/reflect/class-use/ToOneProperty.html   |   13 +-
 .../class-use/UnresolvablePathException.html       |   13 +-
 .../generic/DataObjectDescriptorFactory.html       |   13 +-
 .../DefaultValueComparisonStrategyFactory.html     |   13 +-
 .../reflect/generic/ValueComparisonStrategy.html   |   13 +-
 .../generic/ValueComparisonStrategyFactory.html    |   13 +-
 .../class-use/DataObjectDescriptorFactory.html     |   13 +-
 .../DefaultValueComparisonStrategyFactory.html     |   13 +-
 .../generic/class-use/ValueComparisonStrategy.html |   13 +-
 .../class-use/ValueComparisonStrategyFactory.html  |   13 +-
 .../cayenne/reflect/generic/package-summary.html   |   13 +-
 .../cayenne/reflect/generic/package-tree.html      |   13 +-
 .../cayenne/reflect/generic/package-use.html       |   13 +-
 .../apache/cayenne/reflect/package-summary.html    |   13 +-
 .../org/apache/cayenne/reflect/package-tree.html   |   13 +-
 .../org/apache/cayenne/reflect/package-use.html    |   13 +-
 .../valueholder/ValueHolderDescriptorFactory.html  |   13 +-
 .../class-use/ValueHolderDescriptorFactory.html    |   13 +-
 .../reflect/valueholder/package-summary.html       |   13 +-
 .../cayenne/reflect/valueholder/package-tree.html  |   13 +-
 .../cayenne/reflect/valueholder/package-use.html   |   13 +-
 .../org/apache/cayenne/remote/BaseConnection.html  |   13 +-
 .../org/apache/cayenne/remote/ClientChannel.html   |   13 +-
 .../apache/cayenne/remote/ClientConnection.html    |   13 +-
 .../cayenne/remote/class-use/BaseConnection.html   |   13 +-
 .../cayenne/remote/class-use/ClientChannel.html    |   13 +-
 .../cayenne/remote/class-use/ClientConnection.html |   13 +-
 .../remote/hessian/ClientSerializerFactory.html    |   13 +-
 .../hessian/class-use/ClientSerializerFactory.html |   13 +-
 .../cayenne/remote/hessian/package-summary.html    |   13 +-
 .../cayenne/remote/hessian/package-tree.html       |   13 +-
 .../apache/cayenne/remote/hessian/package-use.html |   13 +-
 .../remote/hessian/service/HessianUtil.html        |   13 +-
 .../hessian/service/class-use/HessianUtil.html     |   13 +-
 .../remote/hessian/service/package-summary.html    |   13 +-
 .../remote/hessian/service/package-tree.html       |   13 +-
 .../remote/hessian/service/package-use.html        |   13 +-
 .../org/apache/cayenne/remote/package-summary.html |   13 +-
 .../org/apache/cayenne/remote/package-tree.html    |   13 +-
 .../api/org/apache/cayenne/remote/package-use.html |   13 +-
 .../cayenne/remote/service/LocalConnection.html    |   13 +-
 .../remote/service/class-use/LocalConnection.html  |   13 +-
 .../cayenne/remote/service/package-summary.html    |   13 +-
 .../cayenne/remote/service/package-tree.html       |   13 +-
 .../apache/cayenne/remote/service/package-use.html |   13 +-
 .../resource/ClassLoaderResourceLocator.html       |   13 +-
 .../resource/FilesystemResourceLocator.html        |   13 +-
 .../api/org/apache/cayenne/resource/Resource.html  |   13 +-
 .../apache/cayenne/resource/ResourceLocator.html   |   13 +-
 .../org/apache/cayenne/resource/URLResource.html   |   13 +-
 .../class-use/ClassLoaderResourceLocator.html      |   13 +-
 .../class-use/FilesystemResourceLocator.html       |   13 +-
 .../cayenne/resource/class-use/Resource.html       |   13 +-
 .../resource/class-use/ResourceLocator.html        |   13 +-
 .../cayenne/resource/class-use/URLResource.html    |   13 +-
 .../apache/cayenne/resource/package-summary.html   |   13 +-
 .../org/apache/cayenne/resource/package-tree.html  |   13 +-
 .../org/apache/cayenne/resource/package-use.html   |   13 +-
 .../apache/cayenne/rop/HttpClientConnection.html   |   13 +-
 .../cayenne/rop/HttpClientConnectionProvider.html  |   13 +-
 .../org/apache/cayenne/rop/ProxyRemoteService.html |   13 +-
 .../api/org/apache/cayenne/rop/ROPConnector.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/rop/ROPUtil.html   |   13 +-
 .../rop/class-use/HttpClientConnection.html        |   13 +-
 .../class-use/HttpClientConnectionProvider.html    |   13 +-
 .../cayenne/rop/class-use/ProxyRemoteService.html  |   13 +-
 .../apache/cayenne/rop/class-use/ROPConnector.html |   13 +-
 .../org/apache/cayenne/rop/class-use/ROPUtil.html  |   13 +-
 .../ClientHessianSerializationServiceProvider.html |   13 +-
 .../apache/cayenne/rop/http/HttpROPConnector.html  |   13 +-
 .../ClientHessianSerializationServiceProvider.html |   13 +-
 .../rop/http/class-use/HttpROPConnector.html       |   13 +-
 .../apache/cayenne/rop/http/package-summary.html   |   13 +-
 .../org/apache/cayenne/rop/http/package-tree.html  |   13 +-
 .../org/apache/cayenne/rop/http/package-use.html   |   13 +-
 .../org/apache/cayenne/rop/package-summary.html    |   13 +-
 .../api/org/apache/cayenne/rop/package-tree.html   |   13 +-
 .../api/org/apache/cayenne/rop/package-use.html    |   13 +-
 .../template/CayenneSQLTemplateProcessor.html      |   13 +-
 .../api/org/apache/cayenne/template/Context.html   |   13 +-
 .../template/DefaultTemplateContextFactory.html    |   13 +-
 .../template/SQLTemplateRenderingUtils.html        |   13 +-
 .../cayenne/template/TemplateContextFactory.html   |   13 +-
 .../class-use/CayenneSQLTemplateProcessor.html     |   13 +-
 .../apache/cayenne/template/class-use/Context.html |   13 +-
 .../class-use/DefaultTemplateContextFactory.html   |   13 +-
 .../class-use/SQLTemplateRenderingUtils.html       |   13 +-
 .../template/class-use/TemplateContextFactory.html |   13 +-
 .../apache/cayenne/template/directive/Bind.html    |   13 +-
 .../cayenne/template/directive/BindEqual.html      |   13 +-
 .../cayenne/template/directive/BindNotEqual.html   |   13 +-
 .../template/directive/BindObjectEqual.html        |   13 +-
 .../template/directive/BindObjectNotEqual.html     |   13 +-
 .../cayenne/template/directive/Directive.html      |   13 +-
 .../apache/cayenne/template/directive/Result.html  |   13 +-
 .../cayenne/template/directive/class-use/Bind.html |   13 +-
 .../template/directive/class-use/BindEqual.html    |   13 +-
 .../template/directive/class-use/BindNotEqual.html |   13 +-
 .../directive/class-use/BindObjectEqual.html       |   13 +-
 .../directive/class-use/BindObjectNotEqual.html    |   13 +-
 .../template/directive/class-use/Directive.html    |   13 +-
 .../template/directive/class-use/Result.html       |   13 +-
 .../template/directive/package-summary.html        |   13 +-
 .../cayenne/template/directive/package-tree.html   |   13 +-
 .../cayenne/template/directive/package-use.html    |   13 +-
 .../apache/cayenne/template/package-summary.html   |   13 +-
 .../org/apache/cayenne/template/package-tree.html  |   13 +-
 .../org/apache/cayenne/template/package-use.html   |   13 +-
 .../apache/cayenne/template/parser/ASTArray.html   |   13 +-
 .../apache/cayenne/template/parser/ASTBlock.html   |   13 +-
 .../cayenne/template/parser/ASTBoolScalar.html     |   13 +-
 .../cayenne/template/parser/ASTDirective.html      |   13 +-
 .../cayenne/template/parser/ASTExpression.html     |   13 +-
 .../cayenne/template/parser/ASTFloatScalar.html    |   13 +-
 .../apache/cayenne/template/parser/ASTIfElse.html  |   13 +-
 .../cayenne/template/parser/ASTIntScalar.html      |   13 +-
 .../apache/cayenne/template/parser/ASTMethod.html  |   13 +-
 .../cayenne/template/parser/ASTStringScalar.html   |   13 +-
 .../apache/cayenne/template/parser/ASTText.html    |   13 +-
 .../cayenne/template/parser/ASTVariable.html       |   13 +-
 .../cayenne/template/parser/ExpressionNode.html    |   13 +-
 .../cayenne/template/parser/IdentifierNode.html    |   13 +-
 .../template/parser/JJTSQLTemplateParserState.html |   13 +-
 .../cayenne/template/parser/JavaCharStream.html    |   13 +-
 .../org/apache/cayenne/template/parser/Node.html   |   13 +-
 .../cayenne/template/parser/ParseException.html    |   13 +-
 .../cayenne/template/parser/SQLTemplateParser.html |   13 +-
 .../parser/SQLTemplateParserConstants.html         |   13 +-
 .../parser/SQLTemplateParserTokenManager.html      |   13 +-
 .../parser/SQLTemplateParserTreeConstants.html     |   13 +-
 .../apache/cayenne/template/parser/ScalarNode.html |   13 +-
 .../apache/cayenne/template/parser/SimpleNode.html |   13 +-
 .../org/apache/cayenne/template/parser/Token.html  |   13 +-
 .../cayenne/template/parser/TokenMgrError.html     |   13 +-
 .../template/parser/class-use/ASTArray.html        |   13 +-
 .../template/parser/class-use/ASTBlock.html        |   13 +-
 .../template/parser/class-use/ASTBoolScalar.html   |   13 +-
 .../template/parser/class-use/ASTDirective.html    |   13 +-
 .../template/parser/class-use/ASTExpression.html   |   13 +-
 .../template/parser/class-use/ASTFloatScalar.html  |   13 +-
 .../template/parser/class-use/ASTIfElse.html       |   13 +-
 .../template/parser/class-use/ASTIntScalar.html    |   13 +-
 .../template/parser/class-use/ASTMethod.html       |   13 +-
 .../template/parser/class-use/ASTStringScalar.html |   13 +-
 .../cayenne/template/parser/class-use/ASTText.html |   13 +-
 .../template/parser/class-use/ASTVariable.html     |   13 +-
 .../template/parser/class-use/ExpressionNode.html  |   13 +-
 .../template/parser/class-use/IdentifierNode.html  |   13 +-
 .../class-use/JJTSQLTemplateParserState.html       |   13 +-
 .../template/parser/class-use/JavaCharStream.html  |   13 +-
 .../cayenne/template/parser/class-use/Node.html    |   13 +-
 .../template/parser/class-use/ParseException.html  |   13 +-
 .../parser/class-use/SQLTemplateParser.html        |   13 +-
 .../class-use/SQLTemplateParserConstants.html      |   13 +-
 .../class-use/SQLTemplateParserTokenManager.html   |   13 +-
 .../class-use/SQLTemplateParserTreeConstants.html  |   13 +-
 .../template/parser/class-use/ScalarNode.html      |   13 +-
 .../template/parser/class-use/SimpleNode.html      |   13 +-
 .../cayenne/template/parser/class-use/Token.html   |   13 +-
 .../template/parser/class-use/TokenMgrError.html   |   13 +-
 .../cayenne/template/parser/package-summary.html   |   13 +-
 .../cayenne/template/parser/package-tree.html      |   13 +-
 .../cayenne/template/parser/package-use.html       |   13 +-
 .../api/org/apache/cayenne/tx/BaseTransaction.html |   13 +-
 .../org/apache/cayenne/tx/CayenneTransaction.html  |   13 +-
 .../cayenne/tx/DefaultTransactionDescriptor.html   |   13 +-
 .../cayenne/tx/DefaultTransactionFactory.html      |   13 +-
 ...tTransactionManager.BaseTransactionHandler.html |   13 +-
 .../cayenne/tx/DefaultTransactionManager.html      |   13 +-
 .../org/apache/cayenne/tx/ExternalTransaction.html |   13 +-
 .../4.2/api/org/apache/cayenne/tx/Transaction.html |   13 +-
 .../cayenne/tx/TransactionDescriptor.Builder.html  |   13 +-
 .../apache/cayenne/tx/TransactionDescriptor.html   |   13 +-
 .../org/apache/cayenne/tx/TransactionFactory.html  |   13 +-
 .../org/apache/cayenne/tx/TransactionFilter.html   |   13 +-
 .../org/apache/cayenne/tx/TransactionListener.html |   13 +-
 .../org/apache/cayenne/tx/TransactionManager.html  |   13 +-
 .../apache/cayenne/tx/TransactionPropagation.html  |   13 +-
 .../apache/cayenne/tx/TransactionalOperation.html  |   13 +-
 .../cayenne/tx/class-use/BaseTransaction.html      |   13 +-
 .../cayenne/tx/class-use/CayenneTransaction.html   |   13 +-
 .../tx/class-use/DefaultTransactionDescriptor.html |   13 +-
 .../tx/class-use/DefaultTransactionFactory.html    |   13 +-
 ...tTransactionManager.BaseTransactionHandler.html |   13 +-
 .../tx/class-use/DefaultTransactionManager.html    |   13 +-
 .../cayenne/tx/class-use/ExternalTransaction.html  |   13 +-
 .../apache/cayenne/tx/class-use/Transaction.html   |   13 +-
 .../class-use/TransactionDescriptor.Builder.html   |   13 +-
 .../tx/class-use/TransactionDescriptor.html        |   13 +-
 .../cayenne/tx/class-use/TransactionFactory.html   |   13 +-
 .../cayenne/tx/class-use/TransactionFilter.html    |   13 +-
 .../cayenne/tx/class-use/TransactionListener.html  |   13 +-
 .../cayenne/tx/class-use/TransactionManager.html   |   13 +-
 .../tx/class-use/TransactionPropagation.html       |   13 +-
 .../tx/class-use/TransactionalOperation.html       |   13 +-
 .../api/org/apache/cayenne/tx/package-summary.html |   13 +-
 .../api/org/apache/cayenne/tx/package-tree.html    |   13 +-
 .../4.2/api/org/apache/cayenne/tx/package-use.html |   13 +-
 .../4.2/api/org/apache/cayenne/util/ArrayUtil.html |   13 +-
 .../org/apache/cayenne/util/CayenneMapEntry.html   |   13 +-
 .../org/apache/cayenne/util/CompareToBuilder.html  |   13 +-
 .../org/apache/cayenne/util/ConversionUtil.html    |   13 +-
 .../apache/cayenne/util/DeepMergeOperation.html    |   13 +-
 .../org/apache/cayenne/util/DeleteRuleUpdater.html |   13 +-
 .../apache/cayenne/util/EntityMergeListener.html   |   13 +-
 .../api/org/apache/cayenne/util/EqualsBuilder.html |   13 +-
 .../4.2/api/org/apache/cayenne/util/EventUtil.html |   13 +-
 .../apache/cayenne/util/GenericQueryResult.html    |   13 +-
 .../org/apache/cayenne/util/GenericResponse.html   |   13 +-
 .../org/apache/cayenne/util/HashCodeBuilder.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/util/IDUtil.html   |   13 +-
 .../cayenne/util/IncrementalListResponse.html      |   13 +-
 .../org/apache/cayenne/util/IndexPropertyList.html |   13 +-
 .../api/org/apache/cayenne/util/Invocation.html    |   13 +-
 .../api/org/apache/cayenne/util/ListResponse.html  |   13 +-
 .../cayenne/util/LocalizedStringsHandler.html      |   13 +-
 .../api/org/apache/cayenne/util/MemoryBlob.html    |   13 +-
 .../api/org/apache/cayenne/util/MemoryClob.html    |   13 +-
 .../cayenne/util/ObjectContextGraphAction.html     |   13 +-
 .../cayenne/util/ObjectContextQueryAction.html     |   13 +-
 .../apache/cayenne/util/ObjectDetachOperation.html |   13 +-
 .../cayenne/util/PersistentObjectCollection.html   |   13 +-
 .../cayenne/util/PersistentObjectHolder.html       |   13 +-
 .../apache/cayenne/util/PersistentObjectList.html  |   13 +-
 .../apache/cayenne/util/PersistentObjectMap.html   |   13 +-
 .../apache/cayenne/util/PersistentObjectSet.html   |   13 +-
 .../cayenne/util/ProcedureResultBuilder.html       |   13 +-
 .../apache/cayenne/util/QueryResultBuilder.html    |   13 +-
 .../org/apache/cayenne/util/RelationshipFault.html |   13 +-
 .../cayenne/util/ResultIteratorIterator.html       |   13 +-
 .../apache/cayenne/util/ShallowMergeOperation.html |   13 +-
 .../org/apache/cayenne/util/SingleEntryMap.html    |   13 +-
 .../api/org/apache/cayenne/util/SoftValueMap.html  |   13 +-
 .../org/apache/cayenne/util/ToStringBuilder.html   |   13 +-
 docs/4.2/api/org/apache/cayenne/util/Util.html     |   13 +-
 .../api/org/apache/cayenne/util/WeakValueMap.html  |   13 +-
 .../api/org/apache/cayenne/util/XMLEncoder.html    |   13 +-
 .../org/apache/cayenne/util/XMLSerializable.html   |   13 +-
 .../apache/cayenne/util/class-use/ArrayUtil.html   |   13 +-
 .../cayenne/util/class-use/CayenneMapEntry.html    |   13 +-
 .../cayenne/util/class-use/CompareToBuilder.html   |   13 +-
 .../cayenne/util/class-use/ConversionUtil.html     |   13 +-
 .../cayenne/util/class-use/DeepMergeOperation.html |   13 +-
 .../cayenne/util/class-use/DeleteRuleUpdater.html  |   13 +-
 .../util/class-use/EntityMergeListener.html        |   13 +-
 .../cayenne/util/class-use/EqualsBuilder.html      |   13 +-
 .../apache/cayenne/util/class-use/EventUtil.html   |   13 +-
 .../cayenne/util/class-use/GenericQueryResult.html |   13 +-
 .../cayenne/util/class-use/GenericResponse.html    |   13 +-
 .../cayenne/util/class-use/HashCodeBuilder.html    |   13 +-
 .../org/apache/cayenne/util/class-use/IDUtil.html  |   13 +-
 .../util/class-use/IncrementalListResponse.html    |   13 +-
 .../cayenne/util/class-use/IndexPropertyList.html  |   13 +-
 .../apache/cayenne/util/class-use/Invocation.html  |   13 +-
 .../cayenne/util/class-use/ListResponse.html       |   13 +-
 .../util/class-use/LocalizedStringsHandler.html    |   13 +-
 .../apache/cayenne/util/class-use/MemoryBlob.html  |   13 +-
 .../apache/cayenne/util/class-use/MemoryClob.html  |   13 +-
 .../util/class-use/ObjectContextGraphAction.html   |   13 +-
 .../util/class-use/ObjectContextQueryAction.html   |   13 +-
 .../util/class-use/ObjectDetachOperation.html      |   13 +-
 .../util/class-use/PersistentObjectCollection.html |   13 +-
 .../util/class-use/PersistentObjectHolder.html     |   13 +-
 .../util/class-use/PersistentObjectList.html       |   13 +-
 .../util/class-use/PersistentObjectMap.html        |   13 +-
 .../util/class-use/PersistentObjectSet.html        |   13 +-
 .../util/class-use/ProcedureResultBuilder.html     |   13 +-
 .../cayenne/util/class-use/QueryResultBuilder.html |   13 +-
 .../cayenne/util/class-use/RelationshipFault.html  |   13 +-
 .../util/class-use/ResultIteratorIterator.html     |   13 +-
 .../util/class-use/ShallowMergeOperation.html      |   13 +-
 .../cayenne/util/class-use/SingleEntryMap.html     |   13 +-
 .../cayenne/util/class-use/SoftValueMap.html       |   13 +-
 .../cayenne/util/class-use/ToStringBuilder.html    |   13 +-
 .../org/apache/cayenne/util/class-use/Util.html    |   13 +-
 .../cayenne/util/class-use/WeakValueMap.html       |   13 +-
 .../apache/cayenne/util/class-use/XMLEncoder.html  |   13 +-
 .../cayenne/util/class-use/XMLSerializable.html    |   13 +-
 .../cayenne/util/commons/CompositeCollection.html  |   13 +-
 .../commons/class-use/CompositeCollection.html     |   13 +-
 .../cayenne/util/commons/package-summary.html      |   13 +-
 .../apache/cayenne/util/commons/package-tree.html  |   13 +-
 .../apache/cayenne/util/commons/package-use.html   |   13 +-
 .../ConcurrentLinkedHashMap.Builder.html           |   13 +-
 .../ConcurrentLinkedHashMap.html                   |   13 +-
 .../class-use/ConcurrentLinkedHashMap.Builder.html |   13 +-
 .../class-use/ConcurrentLinkedHashMap.html         |   13 +-
 .../concurrentlinkedhashmap/package-summary.html   |   13 +-
 .../util/concurrentlinkedhashmap/package-tree.html |   13 +-
 .../util/concurrentlinkedhashmap/package-use.html  |   13 +-
 .../org/apache/cayenne/util/package-summary.html   |   13 +-
 .../api/org/apache/cayenne/util/package-tree.html  |   13 +-
 .../api/org/apache/cayenne/util/package-use.html   |   13 +-
 .../cayenne/validation/BeanValidationFailure.html  |   13 +-
 .../validation/SimpleValidationFailure.html        |   13 +-
 .../cayenne/validation/ValidationException.html    |   13 +-
 .../cayenne/validation/ValidationFailure.html      |   13 +-
 .../cayenne/validation/ValidationResult.html       |   13 +-
 .../class-use/BeanValidationFailure.html           |   13 +-
 .../class-use/SimpleValidationFailure.html         |   13 +-
 .../validation/class-use/ValidationException.html  |   13 +-
 .../validation/class-use/ValidationFailure.html    |   13 +-
 .../validation/class-use/ValidationResult.html     |   13 +-
 .../apache/cayenne/validation/package-summary.html |   13 +-
 .../apache/cayenne/validation/package-tree.html    |   13 +-
 .../org/apache/cayenne/validation/package-use.html |   13 +-
 docs/4.2/api/org/apache/cayenne/value/GeoJson.html |   13 +-
 docs/4.2/api/org/apache/cayenne/value/Json.html    |   19 +-
 docs/4.2/api/org/apache/cayenne/value/Wkt.html     |   13 +-
 .../apache/cayenne/value/class-use/GeoJson.html    |   13 +-
 .../org/apache/cayenne/value/class-use/Json.html   |   13 +-
 .../org/apache/cayenne/value/class-use/Wkt.html    |   13 +-
 .../org/apache/cayenne/value/json/JsonUtils.html   |   13 +-
 .../cayenne/value/json/MalformedJsonException.html |   13 +-
 .../cayenne/value/json/class-use/JsonUtils.html    |   13 +-
 .../json/class-use/MalformedJsonException.html     |   13 +-
 .../apache/cayenne/value/json/package-summary.html |   13 +-
 .../apache/cayenne/value/json/package-tree.html    |   13 +-
 .../org/apache/cayenne/value/json/package-use.html |   13 +-
 .../org/apache/cayenne/value/package-summary.html  |   13 +-
 .../api/org/apache/cayenne/value/package-tree.html |   13 +-
 .../api/org/apache/cayenne/value/package-use.html  |   13 +-
 docs/4.2/api/overview-summary.html                 |    4 +-
 docs/4.2/api/overview-tree.html                    |   13 +-
 docs/4.2/api/package-search-index.zip              |  Bin 688 -> 688 bytes
 docs/4.2/api/serialized-form.html                  |   13 +-
 docs/4.2/api/type-search-index.zip                 |  Bin 7869 -> 7869 bytes
 docs/4.2/cayenne-guide/index.html                  |   52 +-
 docs/4.2/getting-started-db-first/index.html       |    2 +-
 docs/4.2/getting-started-guide/index.html          |    2 +-
 docs/4.2/getting-started-rop/index.html            |    2 +-
 2393 files changed, 18622 insertions(+), 16622 deletions(-)

diff --git a/docs/4.2/api/allclasses-index.html b/docs/4.2/api/allclasses-index.html
index 95f7ac18d..c95644445 100644
--- a/docs/4.2/api/allclasses-index.html
+++ b/docs/4.2/api/allclasses-index.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>All Classes (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>All Classes (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="All Classes (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -5805,7 +5806,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/allclasses.html b/docs/4.2/api/allclasses.html
index 607b0dacd..51066fc4c 100644
--- a/docs/4.2/api/allclasses.html
+++ b/docs/4.2/api/allclasses.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>All Classes (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>All Classes (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,7 +14,8 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" src="jquery/jquery-ui.js"></script>
 </head>
 <body>
diff --git a/docs/4.2/api/allpackages-index.html b/docs/4.2/api/allpackages-index.html
index 6c61d9845..5a9aa1f8a 100644
--- a/docs/4.2/api/allpackages-index.html
+++ b/docs/4.2/api/allpackages-index.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>All Packages (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>All Packages (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="All Packages (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -537,7 +538,7 @@ custom queries.</div>
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/constant-values.html b/docs/4.2/api/constant-values.html
index b12152f96..6a69d7d81 100644
--- a/docs/4.2/api/constant-values.html
+++ b/docs/4.2/api/constant-values.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>Constant Field Values (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>Constant Field Values (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="Constant Field Values (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -5295,7 +5296,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/deprecated-list.html b/docs/4.2/api/deprecated-list.html
index eeecb8385..627412d15 100644
--- a/docs/4.2/api/deprecated-list.html
+++ b/docs/4.2/api/deprecated-list.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>Deprecated List (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>Deprecated List (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="Deprecated List (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -668,7 +669,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/help-doc.html b/docs/4.2/api/help-doc.html
index 6340d8740..e252f4c15 100644
--- a/docs/4.2/api/help-doc.html
+++ b/docs/4.2/api/help-doc.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>API Help (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>API Help (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="API Help (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -277,7 +278,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/index-all.html b/docs/4.2/api/index-all.html
index c97a630b5..377d60cde 100644
--- a/docs/4.2/api/index-all.html
+++ b/docs/4.2/api/index-all.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>Index (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>Index (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="Index (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -30748,7 +30749,7 @@ the order they are declared.</div>
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/index.html b/docs/4.2/api/index.html
index afa014e69..d4098d301 100644
--- a/docs/4.2/api/index.html
+++ b/docs/4.2/api/index.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.10) on Mon Dec 05 10:27:04 MSK 2022 -->
-<title>Overview (cayenne-doc: Cayenne Documentation 4.2.RC2 API)</title>
+<!-- Generated by javadoc (11.0.8) on Tue May 30 17:29:17 MSK 2023 -->
+<title>Overview (cayenne-doc: Cayenne Documentation 4.2 API)</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<meta name="dc.created" content="2022-12-05">
+<meta name="dc.created" content="2023-05-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
@@ -14,14 +14,15 @@
 <!--[if IE]>
 <script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
 <![endif]-->
-<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-3.3.1.js"></script>
+<script type="text/javascript" src="jquery/jquery-migrate-3.0.1.js"></script>
 <script type="text/javascript" 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 (cayenne-doc: Cayenne Documentation 4.2.RC2 API)";
+            parent.document.title="Overview (cayenne-doc: Cayenne Documentation 4.2 API)";
         }
     }
     catch(err) {
@@ -94,7 +95,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 </nav>
 </header>
 <div class="header">
-<h1 class="title">cayenne-doc: Cayenne Documentation 4.2.RC2 API</h1>
+<h1 class="title">cayenne-doc: Cayenne Documentation 4.2 API</h1>
 </div>
 <main role="main">
 <div class="contentContainer">
@@ -533,7 +534,7 @@ custom queries.</div>
 </a></div>
 <!-- ======== END OF BOTTOM NAVBAR ======= -->
 </nav>
-<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2022 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
+<p class="legalCopy"><small>Copyright &#169; 2001&#x2013;2023 <a href="https://cayenne.apache.org/">Apache Cayenne</a>. All rights reserved.</small></p>
 </footer>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/4.2/api/jquery/external/jquery/jquery.js b/docs/4.2/api/jquery/external/jquery/jquery.js
index f2fa5e858..01b858f1b 100644
--- a/docs/4.2/api/jquery/external/jquery/jquery.js
+++ b/docs/4.2/api/jquery/external/jquery/jquery.js
@@ -1,5 +1,5 @@
 /*!
- * jQuery JavaScript Library v3.5.1
+ * jQuery JavaScript Library v3.3.1
  * https://jquery.com/
  *
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
  * Released under the MIT license
  * https://jquery.org/license
  *
- * Date: 2020-05-04T22:49Z
+ * Date: 2018-01-20T17:24Z
  */
 ( function( global, factory ) {
 
@@ -47,16 +47,13 @@
 
 var arr = [];
 
+var document = window.document;
+
 var getProto = Object.getPrototypeOf;
 
 var slice = arr.slice;
 
-var flat = arr.flat ? function( array ) {
-	return arr.flat.call( array );
-} : function( array ) {
-	return arr.concat.apply( [], array );
-};
-
+var concat = arr.concat;
 
 var push = arr.push;
 
@@ -89,40 +86,25 @@ var isWindow = function isWindow( obj ) {
 	};
 
 
-var document = window.document;
-
 
 
 	var preservedScriptAttributes = {
 		type: true,
 		src: true,
-		nonce: true,
 		noModule: true
 	};
 
-	function DOMEval( code, node, doc ) {
+	function DOMEval( code, doc, node ) {
 		doc = doc || document;
 
-		var i, val,
+		var i,
 			script = doc.createElement( "script" );
 
 		script.text = code;
 		if ( node ) {
 			for ( i in preservedScriptAttributes ) {
-
-				// Support: Firefox 64+, Edge 18+
-				// Some browsers don't support the "nonce" property on scripts.
-				// On the other hand, just using `getAttribute` is not enough as
-				// the `nonce` attribute is reset to an empty string whenever it
-				// becomes browsing-context connected.
-				// See https://github.com/whatwg/html/issues/2369
-				// See https://html.spec.whatwg.org/#nonce-attributes
-				// The `node.getAttribute` check was added for the sake of
-				// `jQuery.globalEval` so that it can fake a nonce-containing node
-				// via an object.
-				val = node[ i ] || node.getAttribute && node.getAttribute( i );
-				if ( val ) {
-					script.setAttribute( i, val );
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
 				}
 			}
 		}
@@ -147,7 +129,7 @@ function toType( obj ) {
 
 
 var
-	version = "3.5.1",
+	version = "3.3.1",
 
 	// Define a local copy of jQuery
 	jQuery = function( selector, context ) {
@@ -155,7 +137,11 @@ var
 		// 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 = {
 
@@ -221,18 +207,6 @@ jQuery.fn = jQuery.prototype = {
 		return this.eq( -1 );
 	},
 
-	even: function() {
-		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
-			return ( i + 1 ) % 2;
-		} ) );
-	},
-
-	odd: function() {
-		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
-			return i % 2;
-		} ) );
-	},
-
 	eq: function( i ) {
 		var len = this.length,
 			j = +i + ( i < 0 ? len : 0 );
@@ -284,28 +258,25 @@ jQuery.extend = jQuery.fn.extend = function() {
 
 			// Extend the base object
 			for ( name in options ) {
+				src = target[ name ];
 				copy = options[ name ];
 
-				// Prevent Object.prototype pollution
 				// Prevent never-ending loop
-				if ( name === "__proto__" || target === copy ) {
+				if ( target === copy ) {
 					continue;
 				}
 
 				// Recurse if we're merging plain objects or arrays
 				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 					( copyIsArray = Array.isArray( copy ) ) ) ) {
-					src = target[ name ];
 
-					// Ensure proper type for the source value
-					if ( copyIsArray && !Array.isArray( src ) ) {
-						clone = [];
-					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
-						clone = {};
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
 					} else {
-						clone = src;
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
 					}
-					copyIsArray = false;
 
 					// Never move original objects, clone them
 					target[ name ] = jQuery.extend( deep, clone, copy );
@@ -358,6 +329,9 @@ jQuery.extend( {
 	},
 
 	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
 		var name;
 
 		for ( name in obj ) {
@@ -366,10 +340,9 @@ jQuery.extend( {
 		return true;
 	},
 
-	// Evaluates a script in a provided context; falls back to the global one
-	// if not specified.
-	globalEval: function( code, options, doc ) {
-		DOMEval( code, { nonce: options && options.nonce }, doc );
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
 	},
 
 	each: function( obj, callback ) {
@@ -393,6 +366,13 @@ jQuery.extend( {
 		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 || [];
@@ -479,7 +459,7 @@ jQuery.extend( {
 		}
 
 		// Flatten any nested arrays
-		return flat( ret );
+		return concat.apply( [], ret );
 	},
 
 	// A global GUID counter for objects
@@ -496,7 +476,7 @@ if ( typeof Symbol === "function" ) {
 
 // Populate the class2type map
 jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( _i, name ) {
+function( i, name ) {
 	class2type[ "[object " + name + "]" ] = name.toLowerCase();
 } );
 
@@ -518,16 +498,17 @@ function isArrayLike( obj ) {
 }
 var Sizzle =
 /*!
- * Sizzle CSS Selector Engine v2.3.5
+ * Sizzle CSS Selector Engine v2.3.3
  * https://sizzlejs.com/
  *
- * Copyright JS Foundation and other contributors
+ * Copyright jQuery Foundation and other contributors
  * Released under the MIT license
- * https://js.foundation/
+ * http://jquery.org/license
  *
- * Date: 2020-03-14
+ * Date: 2016-08-08
  */
-( function( window ) {
+(function( window ) {
+
 var i,
 	support,
 	Expr,
@@ -558,7 +539,6 @@ var i,
 	classCache = createCache(),
 	tokenCache = createCache(),
 	compilerCache = createCache(),
-	nonnativeSelectorCache = createCache(),
 	sortOrder = function( a, b ) {
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -567,71 +547,61 @@ var i,
 	},
 
 	// Instance methods
-	hasOwn = ( {} ).hasOwnProperty,
+	hasOwn = ({}).hasOwnProperty,
 	arr = [],
 	pop = arr.pop,
-	pushNative = arr.push,
+	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 ) {
+			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",
+	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]",
 
-	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
-	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
-		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
+	// 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 + "*\\]",
+		// "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" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
 
 	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
-		"*" ),
-	rdescend = new RegExp( whitespace + "|>" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
 
 	rpseudo = new RegExp( pseudos ),
 	ridentifier = new RegExp( "^" + identifier + "$" ),
@@ -642,19 +612,16 @@ var i,
 		"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" ),
+		"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" )
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
 	},
 
-	rhtml = /HTML$/i,
 	rinputs = /^(?:input|select|textarea|button)$/i,
 	rheader = /^h\d$/i,
 
@@ -667,21 +634,18 @@ var i,
 
 	// CSS escapes
 	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
-	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
-	funescape = function( escape, nonHex ) {
-		var high = "0x" + escape.slice( 1 ) - 0x10000;
-
-		return nonHex ?
-
-			// Strip the backslash prefix from a non-hex escape sequence
-			nonHex :
-
-			// Replace a hexadecimal escape sequence with the encoded Unicode code point
-			// Support: IE <=11+
-			// For values outside the Basic Multilingual Plane (BMP), manually construct a
-			// surrogate pair
+	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 );
 	},
 
@@ -697,8 +661,7 @@ var i,
 			}
 
 			// Control characters and (dependent upon position) numbers get escaped as code points
-			return ch.slice( 0, -1 ) + "\\" +
-				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
 		}
 
 		// Other potentially-special ASCII characters get backslash-escaped
@@ -713,9 +676,9 @@ var i,
 		setDocument();
 	},
 
-	inDisabledFieldset = addCombinator(
+	disabledAncestor = addCombinator(
 		function( elem ) {
-			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
+			return elem.disabled === true && ("form" in elem || "label" in elem);
 		},
 		{ dir: "parentNode", next: "legend" }
 	);
@@ -723,20 +686,18 @@ var i,
 // Optimize for push.apply( _, NodeList )
 try {
 	push.apply(
-		( arr = slice.call( preferredDoc.childNodes ) ),
+		(arr = slice.call( preferredDoc.childNodes )),
 		preferredDoc.childNodes
 	);
-
 	// Support: Android<4.0
 	// Detect silently failing push.apply
-	// eslint-disable-next-line no-unused-expressions
 	arr[ preferredDoc.childNodes.length ].nodeType;
 } catch ( e ) {
 	push = { apply: arr.length ?
 
 		// Leverage slice if possible
 		function( target, els ) {
-			pushNative.apply( target, slice.call( els ) );
+			push_native.apply( target, slice.call(els) );
 		} :
 
 		// Support: IE<9
@@ -744,9 +705,8 @@ try {
 		function( target, els ) {
 			var j = target.length,
 				i = 0;
-
 			// Can't trust NodeList.length
-			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
+			while ( (target[j++] = els[i++]) ) {}
 			target.length = j - 1;
 		}
 	};
@@ -770,21 +730,24 @@ function Sizzle( selector, context, results, seed ) {
 
 	// Try to shortcut find operations (as opposed to filters) in HTML documents
 	if ( !seed ) {
-		setDocument( context );
+
+		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 ) ) ) {
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
 
 				// ID selector
-				if ( ( m = match[ 1 ] ) ) {
+				if ( (m = match[1]) ) {
 
 					// Document context
 					if ( nodeType === 9 ) {
-						if ( ( elem = context.getElementById( m ) ) ) {
+						if ( (elem = context.getElementById( m )) ) {
 
 							// Support: IE, Opera, Webkit
 							// TODO: identify versions
@@ -803,7 +766,7 @@ function Sizzle( selector, context, results, seed ) {
 						// Support: IE, Opera, Webkit
 						// TODO: identify versions
 						// getElementById can match elements by name instead of ID
-						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
+						if ( newContext && (elem = newContext.getElementById( m )) &&
 							contains( context, elem ) &&
 							elem.id === m ) {
 
@@ -813,12 +776,12 @@ function Sizzle( selector, context, results, seed ) {
 					}
 
 				// Type selector
-				} else if ( match[ 2 ] ) {
+				} else if ( match[2] ) {
 					push.apply( results, context.getElementsByTagName( selector ) );
 					return results;
 
 				// Class selector
-				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
 					context.getElementsByClassName ) {
 
 					push.apply( results, context.getElementsByClassName( m ) );
@@ -828,62 +791,50 @@ function Sizzle( selector, context, results, seed ) {
 
 			// Take advantage of querySelectorAll
 			if ( support.qsa &&
-				!nonnativeSelectorCache[ selector + " " ] &&
-				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
-
-				// Support: IE 8 only
-				// Exclude object elements
-				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
-
-				newSelector = selector;
-				newContext = context;
-
-				// qSA considers elements outside a scoping root when evaluating child or
-				// descendant combinators, which is not what we want.
-				// In such cases, we work around the behavior by prefixing every selector in the
-				// list with an ID selector referencing the scope context.
-				// The technique has to be used as well when a leading combinator is used
-				// as such selectors are not recognized by querySelectorAll.
-				// Thanks to Andrew Dupont for this technique.
-				if ( nodeType === 1 &&
-					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
 
-					// Expand context for sibling selectors
-					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
-						context;
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
 
-					// We can use :scope instead of the ID hack if the browser
-					// supports it & if we're not changing the context.
-					if ( newContext !== context || !support.scope ) {
+				// 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 ) );
-						}
+					// 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 ? "#" + nid : ":scope" ) + " " +
-							toSelector( groups[ i ] );
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
 					}
 					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
 				}
 
-				try {
-					push.apply( results,
-						newContext.querySelectorAll( newSelector )
-					);
-					return results;
-				} catch ( qsaError ) {
-					nonnativeSelectorCache( selector, true );
-				} finally {
-					if ( nid === expando ) {
-						context.removeAttribute( "id" );
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
 					}
 				}
 			}
@@ -904,14 +855,12 @@ 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[ key + " " ] = value);
 	}
 	return cache;
 }
@@ -930,19 +879,17 @@ function markFunction( fn ) {
  * @param {Function} fn Passed the created element and returns a boolean result
  */
 function assert( fn ) {
-	var el = document.createElement( "fieldset" );
+	var el = document.createElement("fieldset");
 
 	try {
 		return !!fn( el );
-	} catch ( e ) {
+	} catch (e) {
 		return false;
 	} finally {
-
 		// Remove from its parent by default
 		if ( el.parentNode ) {
 			el.parentNode.removeChild( el );
 		}
-
 		// release memory in IE
 		el = null;
 	}
@@ -954,11 +901,11 @@ function assert( fn ) {
  * @param {Function} handler The method that will be applied
  */
 function addHandle( attrs, handler ) {
-	var arr = attrs.split( "|" ),
+	var arr = attrs.split("|"),
 		i = arr.length;
 
 	while ( i-- ) {
-		Expr.attrHandle[ arr[ i ] ] = handler;
+		Expr.attrHandle[ arr[i] ] = handler;
 	}
 }
 
@@ -980,7 +927,7 @@ function siblingCheck( a, b ) {
 
 	// Check if b follows a
 	if ( cur ) {
-		while ( ( cur = cur.nextSibling ) ) {
+		while ( (cur = cur.nextSibling) ) {
 			if ( cur === b ) {
 				return -1;
 			}
@@ -1008,7 +955,7 @@ function createInputPseudo( type ) {
 function createButtonPseudo( type ) {
 	return function( elem ) {
 		var name = elem.nodeName.toLowerCase();
-		return ( name === "input" || name === "button" ) && elem.type === type;
+		return (name === "input" || name === "button") && elem.type === type;
 	};
 }
 
@@ -1051,7 +998,7 @@ function createDisabledPseudo( disabled ) {
 					// Where there is no isDisabled, check manually
 					/* jshint -W018 */
 					elem.isDisabled !== !disabled &&
-					inDisabledFieldset( elem ) === disabled;
+						disabledAncestor( elem ) === disabled;
 			}
 
 			return elem.disabled === disabled;
@@ -1073,21 +1020,21 @@ function createDisabledPseudo( disabled ) {
  * @param {Function} fn
  */
 function createPositionalPseudo( fn ) {
-	return markFunction( function( argument ) {
+	return markFunction(function( argument ) {
 		argument = +argument;
-		return markFunction( function( seed, matches ) {
+		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 ] );
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
 				}
 			}
-		} );
-	} );
+		});
+	});
 }
 
 /**
@@ -1108,13 +1055,10 @@ support = Sizzle.support = {};
  * @returns {Boolean} True iff elem is a non-HTML XML node
  */
 isXML = Sizzle.isXML = function( elem ) {
-	var namespace = elem.namespaceURI,
-		docElem = ( elem.ownerDocument || elem ).documentElement;
-
-	// Support: IE <=8
-	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
-	// https://bugs.jquery.com/ticket/4833
-	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
+	// 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;
 };
 
 /**
@@ -1127,11 +1071,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		doc = node ? node.ownerDocument || node : preferredDoc;
 
 	// Return early if doc is invalid or already selected
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
 		return document;
 	}
 
@@ -1140,14 +1080,10 @@ setDocument = Sizzle.setDocument = function( node ) {
 	docElem = document.documentElement;
 	documentIsHTML = !isXML( document );
 
-	// Support: IE 9 - 11+, Edge 12 - 18+
+	// Support: IE 9-11, Edge
 	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( preferredDoc != document &&
-		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
 
 		// Support: IE 11, Edge
 		if ( subWindow.addEventListener ) {
@@ -1159,36 +1095,25 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 	}
 
-	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
-	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
-	// IE/Edge & older browsers don't support the :scope pseudo-class.
-	// Support: Safari 6.0 only
-	// Safari 6.0 supports :scope but it's an alias of :root there.
-	support.scope = assert( function( el ) {
-		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
-		return typeof el.querySelectorAll !== "undefined" &&
-			!el.querySelectorAll( ":scope fieldset div" ).length;
-	} );
-
 	/* Attributes
 	---------------------------------------------------------------------- */
 
 	// Support: IE<8
 	// Verify that getAttribute really returns attributes and not properties
 	// (excepting IE8 booleans)
-	support.attributes = assert( function( el ) {
+	support.attributes = assert(function( el ) {
 		el.className = "i";
-		return !el.getAttribute( "className" );
-	} );
+		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.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
 
 	// Support: IE<9
 	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
@@ -1197,38 +1122,38 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// 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 ) {
+	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 ) {
+		Expr.filter["ID"] = function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
-				return elem.getAttribute( "id" ) === attrId;
+				return elem.getAttribute("id") === attrId;
 			};
 		};
-		Expr.find[ "ID" ] = function( id, context ) {
+		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 ) {
+		Expr.filter["ID"] =  function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
 				var node = typeof elem.getAttributeNode !== "undefined" &&
-					elem.getAttributeNode( "id" );
+					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 ) {
+		Expr.find["ID"] = function( id, context ) {
 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 				var node, i, elems,
 					elem = context.getElementById( id );
@@ -1236,7 +1161,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 				if ( elem ) {
 
 					// Verify the id attribute
-					node = elem.getAttributeNode( "id" );
+					node = elem.getAttributeNode("id");
 					if ( node && node.value === id ) {
 						return [ elem ];
 					}
@@ -1244,8 +1169,8 @@ setDocument = Sizzle.setDocument = function( node ) {
 					// Fall back on getElementsByName
 					elems = context.getElementsByName( id );
 					i = 0;
-					while ( ( elem = elems[ i++ ] ) ) {
-						node = elem.getAttributeNode( "id" );
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
 						if ( node && node.value === id ) {
 							return [ elem ];
 						}
@@ -1258,7 +1183,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 	}
 
 	// Tag
-	Expr.find[ "TAG" ] = support.getElementsByTagName ?
+	Expr.find["TAG"] = support.getElementsByTagName ?
 		function( tag, context ) {
 			if ( typeof context.getElementsByTagName !== "undefined" ) {
 				return context.getElementsByTagName( tag );
@@ -1273,13 +1198,12 @@ setDocument = Sizzle.setDocument = function( node ) {
 			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++ ] ) ) {
+				while ( (elem = results[i++]) ) {
 					if ( elem.nodeType === 1 ) {
 						tmp.push( elem );
 					}
@@ -1291,7 +1215,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		};
 
 	// Class
-	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
 		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
 			return context.getElementsByClassName( className );
 		}
@@ -1312,14 +1236,10 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// See https://bugs.jquery.com/ticket/13378
 	rbuggyQSA = [];
 
-	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
-
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
 		// Build QSA regex
 		// Regex strategy adopted from Diego Perini
-		assert( function( el ) {
-
-			var input;
-
+		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,
@@ -1333,98 +1253,78 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// 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 ) {
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
 				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
 			}
 
 			// Support: IE8
 			// Boolean attributes and "value" are not treated correctly
-			if ( !el.querySelectorAll( "[selected]" ).length ) {
+			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( "~=" );
-			}
-
-			// Support: IE 11+, Edge 15 - 18+
-			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
-			// Adding a temporary attribute to the document before the selection works
-			// around the issue.
-			// Interestingly, IE 10 & older don't seem to have the issue.
-			input = document.createElement( "input" );
-			input.setAttribute( "name", "" );
-			el.appendChild( input );
-			if ( !el.querySelectorAll( "[name='']" ).length ) {
-				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
-					whitespace + "*(?:''|\"\")" );
+				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" );
+			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( ".#.+[+~]" );
+				rbuggyQSA.push(".#.+[+~]");
 			}
+		});
 
-			// Support: Firefox <=3.6 - 5 only
-			// Old Firefox doesn't throw on a badly-escaped identifier.
-			el.querySelectorAll( "\\\f" );
-			rbuggyQSA.push( "[\\r\\n\\f]" );
-		} );
-
-		assert( function( el ) {
+		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" );
+			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 ) {
+			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 ) {
+			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 ) {
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
 				rbuggyQSA.push( ":enabled", ":disabled" );
 			}
 
-			// Support: Opera 10 - 11 only
 			// Opera 10-11 does not throw on post-comma invalid pseudos
-			el.querySelectorAll( "*,:x" );
-			rbuggyQSA.push( ",.*:" );
-		} );
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
 	}
 
-	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
 		docElem.webkitMatchesSelector ||
 		docElem.mozMatchesSelector ||
 		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector ) ) ) ) {
-
-		assert( function( el ) {
+		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, "*" );
@@ -1433,11 +1333,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// 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( "|" ) );
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
 
 	/* Contains
 	---------------------------------------------------------------------- */
@@ -1454,11 +1354,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 				adown.contains ?
 					adown.contains( bup ) :
 					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			) );
+			));
 		} :
 		function( a, b ) {
 			if ( b ) {
-				while ( ( b = b.parentNode ) ) {
+				while ( (b = b.parentNode) ) {
 					if ( b === a ) {
 						return true;
 					}
@@ -1487,11 +1387,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 
 		// Calculate position if both inputs belong to the same document
-		// Support: IE 11+, Edge 17 - 18+
-		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-		// two documents; shallow comparisons work.
-		// eslint-disable-next-line eqeqeq
-		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
 			a.compareDocumentPosition( b ) :
 
 			// Otherwise we know they are disconnected
@@ -1499,24 +1395,13 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Disconnected nodes
 		if ( compare & 1 ||
-			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
 
 			// Choose the first element that is related to our preferred document
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			// eslint-disable-next-line eqeqeq
-			if ( a == document || a.ownerDocument == preferredDoc &&
-				contains( preferredDoc, a ) ) {
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
 				return -1;
 			}
-
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			// eslint-disable-next-line eqeqeq
-			if ( b == document || b.ownerDocument == preferredDoc &&
-				contains( preferredDoc, b ) ) {
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
 				return 1;
 			}
 
@@ -1529,7 +1414,6 @@ setDocument = Sizzle.setDocument = function( node ) {
 		return compare & 4 ? -1 : 1;
 	} :
 	function( a, b ) {
-
 		// Exit early if the nodes are identical
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -1545,14 +1429,8 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Parentless nodes are either documents or disconnected
 		if ( !aup || !bup ) {
-
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			/* eslint-disable eqeqeq */
-			return a == document ? -1 :
-				b == document ? 1 :
-				/* eslint-enable eqeqeq */
+			return a === document ? -1 :
+				b === document ? 1 :
 				aup ? -1 :
 				bup ? 1 :
 				sortInput ?
@@ -1566,32 +1444,26 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Otherwise we need full lists of their ancestors for comparison
 		cur = a;
-		while ( ( cur = cur.parentNode ) ) {
+		while ( (cur = cur.parentNode) ) {
 			ap.unshift( cur );
 		}
 		cur = b;
-		while ( ( cur = cur.parentNode ) ) {
+		while ( (cur = cur.parentNode) ) {
 			bp.unshift( cur );
 		}
 
 		// Walk down the tree looking for a discrepancy
-		while ( ap[ i ] === bp[ i ] ) {
+		while ( ap[i] === bp[i] ) {
 			i++;
 		}
 
 		return i ?
-
 			// Do a sibling check if the nodes have a common ancestor
-			siblingCheck( ap[ i ], bp[ i ] ) :
+			siblingCheck( ap[i], bp[i] ) :
 
 			// Otherwise nodes in our document sort first
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			/* eslint-disable eqeqeq */
-			ap[ i ] == preferredDoc ? -1 :
-			bp[ i ] == preferredDoc ? 1 :
-			/* eslint-enable eqeqeq */
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
 			0;
 	};
 
@@ -1603,10 +1475,16 @@ Sizzle.matches = function( expr, elements ) {
 };
 
 Sizzle.matchesSelector = function( elem, expr ) {
-	setDocument( elem );
+	// 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 &&
-		!nonnativeSelectorCache[ expr + " " ] &&
+		!compilerCache[ expr + " " ] &&
 		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
 		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 
@@ -1615,46 +1493,32 @@ Sizzle.matchesSelector = function( 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 ) {
+					// 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 ) {
-			nonnativeSelectorCache( expr, true );
-		}
+		} catch (e) {}
 	}
 
 	return Sizzle( expr, document, null, [ elem ] ).length > 0;
 };
 
 Sizzle.contains = function( context, elem ) {
-
 	// Set document vars if needed
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( ( context.ownerDocument || context ) != document ) {
+	if ( ( context.ownerDocument || context ) !== document ) {
 		setDocument( context );
 	}
 	return contains( context, elem );
 };
 
 Sizzle.attr = function( elem, name ) {
-
 	// Set document vars if needed
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( ( elem.ownerDocument || elem ) != document ) {
+	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 ) :
@@ -1664,13 +1528,13 @@ Sizzle.attr = function( elem, name ) {
 		val :
 		support.attributes || !documentIsHTML ?
 			elem.getAttribute( name ) :
-			( val = elem.getAttributeNode( name ) ) && val.specified ?
+			(val = elem.getAttributeNode(name)) && val.specified ?
 				val.value :
 				null;
 };
 
 Sizzle.escape = function( sel ) {
-	return ( sel + "" ).replace( rcssescape, fcssescape );
+	return (sel + "").replace( rcssescape, fcssescape );
 };
 
 Sizzle.error = function( msg ) {
@@ -1693,7 +1557,7 @@ Sizzle.uniqueSort = function( results ) {
 	results.sort( sortOrder );
 
 	if ( hasDuplicate ) {
-		while ( ( elem = results[ i++ ] ) ) {
+		while ( (elem = results[i++]) ) {
 			if ( elem === results[ i ] ) {
 				j = duplicates.push( i );
 			}
@@ -1721,21 +1585,17 @@ getText = Sizzle.getText = function( elem ) {
 		nodeType = elem.nodeType;
 
 	if ( !nodeType ) {
-
 		// If no nodeType, this is expected to be an array
-		while ( ( node = elem[ i++ ] ) ) {
-
+		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 );
@@ -1744,7 +1604,6 @@ getText = Sizzle.getText = function( elem ) {
 	} else if ( nodeType === 3 || nodeType === 4 ) {
 		return elem.nodeValue;
 	}
-
 	// Do not include comment or processing instruction nodes
 
 	return ret;
@@ -1772,21 +1631,19 @@ Expr = Sizzle.selectors = {
 
 	preFilter: {
 		"ATTR": function( match ) {
-			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
+			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 );
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
 
-			if ( match[ 2 ] === "~=" ) {
-				match[ 3 ] = " " + match[ 3 ] + " ";
+			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)
@@ -1797,25 +1654,22 @@ Expr = Sizzle.selectors = {
 				7 sign of y-component
 				8 y of y-component
 			*/
-			match[ 1 ] = match[ 1 ].toLowerCase();
-
-			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
+			match[1] = match[1].toLowerCase();
 
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
 				// nth-* requires argument
-				if ( !match[ 3 ] ) {
-					Sizzle.error( match[ 0 ] );
+				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" );
+				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 ] );
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
 			}
 
 			return match;
@@ -1823,28 +1677,26 @@ Expr = Sizzle.selectors = {
 
 		"PSEUDO": function( match ) {
 			var excess,
-				unquoted = !match[ 6 ] && match[ 2 ];
+				unquoted = !match[6] && match[2];
 
-			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
 				return null;
 			}
 
 			// Accept quoted arguments as-is
-			if ( match[ 3 ] ) {
-				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
+			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 ) ) &&
-
+				(excess = tokenize( unquoted, true )) &&
 				// advance to the next closing parenthesis
-				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
+				(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 );
+				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)
@@ -1857,9 +1709,7 @@ Expr = Sizzle.selectors = {
 		"TAG": function( nodeNameSelector ) {
 			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
 			return nodeNameSelector === "*" ?
-				function() {
-					return true;
-				} :
+				function() { return true; } :
 				function( elem ) {
 					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
 				};
@@ -1869,16 +1719,10 @@ Expr = Sizzle.selectors = {
 			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" ) ||
-								""
-							);
-				} );
+				(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 ) {
@@ -1894,8 +1738,6 @@ Expr = Sizzle.selectors = {
 
 				result += "";
 
-				/* eslint-disable max-len */
-
 				return operator === "=" ? result === check :
 					operator === "!=" ? result !== check :
 					operator === "^=" ? check && result.indexOf( check ) === 0 :
@@ -1904,12 +1746,10 @@ Expr = Sizzle.selectors = {
 					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
 					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
 					false;
-				/* eslint-enable max-len */
-
 			};
 		},
 
-		"CHILD": function( type, what, _argument, first, last ) {
+		"CHILD": function( type, what, argument, first, last ) {
 			var simple = type.slice( 0, 3 ) !== "nth",
 				forward = type.slice( -4 ) !== "last",
 				ofType = what === "of-type";
@@ -1921,7 +1761,7 @@ Expr = Sizzle.selectors = {
 					return !!elem.parentNode;
 				} :
 
-				function( elem, _context, xml ) {
+				function( elem, context, xml ) {
 					var cache, uniqueCache, outerCache, node, nodeIndex, start,
 						dir = simple !== forward ? "nextSibling" : "previousSibling",
 						parent = elem.parentNode,
@@ -1935,7 +1775,7 @@ Expr = Sizzle.selectors = {
 						if ( simple ) {
 							while ( dir ) {
 								node = elem;
-								while ( ( node = node[ dir ] ) ) {
+								while ( (node = node[ dir ]) ) {
 									if ( ofType ?
 										node.nodeName.toLowerCase() === name :
 										node.nodeType === 1 ) {
@@ -1943,7 +1783,6 @@ Expr = Sizzle.selectors = {
 										return false;
 									}
 								}
-
 								// Reverse direction for :only-* (if we haven't yet done so)
 								start = dir = type === "only" && !start && "nextSibling";
 							}
@@ -1959,22 +1798,22 @@ Expr = Sizzle.selectors = {
 
 							// ...in a gzip-friendly way
 							node = parent;
-							outerCache = node[ expando ] || ( node[ expando ] = {} );
+							outerCache = node[ expando ] || (node[ expando ] = {});
 
 							// Support: IE <9 only
 							// Defend against cloned attroperties (jQuery gh-1709)
 							uniqueCache = outerCache[ node.uniqueID ] ||
-								( 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 ] ||
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
 
 								// Fallback to seeking `elem` from the start
-								( diff = nodeIndex = 0 ) || start.pop() ) ) {
+								(diff = nodeIndex = 0) || start.pop()) ) {
 
 								// When found, cache indexes on `parent` and break
 								if ( node.nodeType === 1 && ++diff && node === elem ) {
@@ -1984,18 +1823,16 @@ Expr = Sizzle.selectors = {
 							}
 
 						} else {
-
 							// Use previously-cached element index if available
 							if ( useCache ) {
-
 								// ...in a gzip-friendly way
 								node = elem;
-								outerCache = node[ expando ] || ( node[ expando ] = {} );
+								outerCache = node[ expando ] || (node[ expando ] = {});
 
 								// Support: IE <9 only
 								// Defend against cloned attroperties (jQuery gh-1709)
 								uniqueCache = outerCache[ node.uniqueID ] ||
-									( outerCache[ node.uniqueID ] = {} );
+									(outerCache[ node.uniqueID ] = {});
 
 								cache = uniqueCache[ type ] || [];
 								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
@@ -2005,10 +1842,9 @@ Expr = Sizzle.selectors = {
 							// 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() ) ) {
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
 
 									if ( ( ofType ?
 										node.nodeName.toLowerCase() === name :
@@ -2017,13 +1853,12 @@ Expr = Sizzle.selectors = {
 
 										// Cache the index of each encountered element
 										if ( useCache ) {
-											outerCache = node[ expando ] ||
-												( node[ expando ] = {} );
+											outerCache = node[ expando ] || (node[ expando ] = {});
 
 											// Support: IE <9 only
 											// Defend against cloned attroperties (jQuery gh-1709)
 											uniqueCache = outerCache[ node.uniqueID ] ||
-												( outerCache[ node.uniqueID ] = {} );
+												(outerCache[ node.uniqueID ] = {});
 
 											uniqueCache[ type ] = [ dirruns, diff ];
 										}
@@ -2044,7 +1879,6 @@ Expr = Sizzle.selectors = {
 		},
 
 		"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
@@ -2064,15 +1898,15 @@ Expr = Sizzle.selectors = {
 			if ( fn.length > 1 ) {
 				args = [ pseudo, pseudo, "", argument ];
 				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction( function( seed, matches ) {
+					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 ] );
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
 						}
-					} ) :
+					}) :
 					function( elem ) {
 						return fn( elem, 0, args );
 					};
@@ -2083,10 +1917,8 @@ Expr = Sizzle.selectors = {
 	},
 
 	pseudos: {
-
 		// Potentially complex pseudos
-		"not": markFunction( function( selector ) {
-
+		"not": markFunction(function( selector ) {
 			// Trim the selector passed to compile
 			// to avoid treating leading and trailing
 			// spaces as combinators
@@ -2095,40 +1927,39 @@ Expr = Sizzle.selectors = {
 				matcher = compile( selector.replace( rtrim, "$1" ) );
 
 			return matcher[ expando ] ?
-				markFunction( function( seed, matches, _context, xml ) {
+				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 );
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
 						}
 					}
-				} ) :
-				function( elem, _context, xml ) {
-					input[ 0 ] = elem;
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
 					matcher( input, null, xml, results );
-
 					// Don't keep the element (issue #299)
-					input[ 0 ] = null;
+					input[0] = null;
 					return !results.pop();
 				};
-		} ),
+		}),
 
-		"has": markFunction( function( selector ) {
+		"has": markFunction(function( selector ) {
 			return function( elem ) {
 				return Sizzle( selector, elem ).length > 0;
 			};
-		} ),
+		}),
 
-		"contains": markFunction( function( text ) {
+		"contains": markFunction(function( text ) {
 			text = text.replace( runescape, funescape );
 			return function( elem ) {
-				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
+				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
@@ -2138,26 +1969,25 @@ Expr = Sizzle.selectors = {
 		// 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 || "" ) ) {
+			if ( !ridentifier.test(lang || "") ) {
 				Sizzle.error( "unsupported lang: " + lang );
 			}
 			lang = lang.replace( runescape, funescape ).toLowerCase();
 			return function( elem ) {
 				var elemLang;
 				do {
-					if ( ( elemLang = documentIsHTML ?
+					if ( (elemLang = documentIsHTML ?
 						elem.lang :
-						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "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 );
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
 				return false;
 			};
-		} ),
+		}),
 
 		// Miscellaneous
 		"target": function( elem ) {
@@ -2170,9 +2000,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"focus": function( elem ) {
-			return elem === document.activeElement &&
-				( !document.hasFocus || document.hasFocus() ) &&
-				!!( elem.type || elem.href || ~elem.tabIndex );
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
 		},
 
 		// Boolean properties
@@ -2180,20 +2008,16 @@ Expr = Sizzle.selectors = {
 		"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 );
+			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 ) {
-				// eslint-disable-next-line no-unused-expressions
 				elem.parentNode.selectedIndex;
 			}
 
@@ -2202,7 +2026,6 @@ Expr = Sizzle.selectors = {
 
 		// 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.)
@@ -2216,7 +2039,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"parent": function( elem ) {
-			return !Expr.pseudos[ "empty" ]( elem );
+			return !Expr.pseudos["empty"]( elem );
 		},
 
 		// Element/input types
@@ -2240,62 +2063,57 @@ Expr = Sizzle.selectors = {
 
 				// Support: IE<8
 				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
-				( ( attr = elem.getAttribute( "type" ) ) == null ||
-					attr.toLowerCase() === "text" );
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
 		},
 
 		// Position-in-collection
-		"first": createPositionalPseudo( function() {
+		"first": createPositionalPseudo(function() {
 			return [ 0 ];
-		} ),
+		}),
 
-		"last": createPositionalPseudo( function( _matchIndexes, length ) {
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
 			return [ length - 1 ];
-		} ),
+		}),
 
-		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
 			return [ argument < 0 ? argument + length : argument ];
-		} ),
+		}),
 
-		"even": createPositionalPseudo( function( matchIndexes, length ) {
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
 			var i = 0;
 			for ( ; i < length; i += 2 ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		} ),
+		}),
 
-		"odd": createPositionalPseudo( function( matchIndexes, length ) {
+		"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 > length ?
-					length :
-					argument;
+		"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 ) {
+		"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" ];
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
 
 // Add button/input type pseudos
 for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2326,39 +2144,37 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 	while ( soFar ) {
 
 		// Comma and first run
-		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
 			if ( match ) {
-
 				// Don't consume trailing commas as valid
-				soFar = soFar.slice( match[ 0 ].length ) || soFar;
+				soFar = soFar.slice( match[0].length ) || soFar;
 			}
-			groups.push( ( tokens = [] ) );
+			groups.push( (tokens = []) );
 		}
 
 		matched = false;
 
 		// Combinators
-		if ( ( match = rcombinators.exec( soFar ) ) ) {
+		if ( (match = rcombinators.exec( soFar )) ) {
 			matched = match.shift();
-			tokens.push( {
+			tokens.push({
 				value: matched,
-
 				// Cast descendant combinators to space
-				type: match[ 0 ].replace( rtrim, " " )
-			} );
+				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 ) ) ) ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
 				matched = match.shift();
-				tokens.push( {
+				tokens.push({
 					value: matched,
 					type: type,
 					matches: match
-				} );
+				});
 				soFar = soFar.slice( matched.length );
 			}
 		}
@@ -2375,7 +2191,6 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 		soFar.length :
 		soFar ?
 			Sizzle.error( selector ) :
-
 			// Cache the tokens
 			tokenCache( selector, groups ).slice( 0 );
 };
@@ -2385,7 +2200,7 @@ function toSelector( tokens ) {
 		len = tokens.length,
 		selector = "";
 	for ( ; i < len; i++ ) {
-		selector += tokens[ i ].value;
+		selector += tokens[i].value;
 	}
 	return selector;
 }
@@ -2398,10 +2213,9 @@ function addCombinator( matcher, combinator, base ) {
 		doneName = done++;
 
 	return combinator.first ?
-
 		// Check against closest ancestor/preceding element
 		function( elem, context, xml ) {
-			while ( ( elem = elem[ dir ] ) ) {
+			while ( (elem = elem[ dir ]) ) {
 				if ( elem.nodeType === 1 || checkNonElements ) {
 					return matcher( elem, context, xml );
 				}
@@ -2416,7 +2230,7 @@ function addCombinator( matcher, combinator, base ) {
 
 			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
 			if ( xml ) {
-				while ( ( elem = elem[ dir ] ) ) {
+				while ( (elem = elem[ dir ]) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
 						if ( matcher( elem, context, xml ) ) {
 							return true;
@@ -2424,29 +2238,27 @@ function addCombinator( matcher, combinator, base ) {
 					}
 				}
 			} else {
-				while ( ( elem = elem[ dir ] ) ) {
+				while ( (elem = elem[ dir ]) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
 
 						// Support: IE <9 only
 						// Defend against cloned attroperties (jQuery gh-1709)
-						uniqueCache = outerCache[ elem.uniqueID ] ||
-							( outerCache[ elem.uniqueID ] = {} );
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
 
 						if ( skip && skip === elem.nodeName.toLowerCase() ) {
 							elem = elem[ dir ] || elem;
-						} else if ( ( oldCache = uniqueCache[ key ] ) &&
+						} 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 ] );
+							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 ) ) ) {
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
 								return true;
 							}
 						}
@@ -2462,20 +2274,20 @@ function elementMatcher( matchers ) {
 		function( elem, context, xml ) {
 			var i = matchers.length;
 			while ( i-- ) {
-				if ( !matchers[ i ]( elem, context, xml ) ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
 					return false;
 				}
 			}
 			return true;
 		} :
-		matchers[ 0 ];
+		matchers[0];
 }
 
 function multipleContexts( selector, contexts, results ) {
 	var i = 0,
 		len = contexts.length;
 	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[ i ], results );
+		Sizzle( selector, contexts[i], results );
 	}
 	return results;
 }
@@ -2488,7 +2300,7 @@ function condense( unmatched, map, filter, context, xml ) {
 		mapped = map != null;
 
 	for ( ; i < len; i++ ) {
-		if ( ( elem = unmatched[ i ] ) ) {
+		if ( (elem = unmatched[i]) ) {
 			if ( !filter || filter( elem, context, xml ) ) {
 				newUnmatched.push( elem );
 				if ( mapped ) {
@@ -2508,18 +2320,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 	if ( postFinder && !postFinder[ expando ] ) {
 		postFinder = setMatcher( postFinder, postSelector );
 	}
-	return markFunction( function( seed, results, context, xml ) {
+	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,
-				[]
-			),
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
 
 			// Prefilter to get matcher input, preserving a map for seed-results synchronization
 			matcherIn = preFilter && ( seed || !selector ) ?
@@ -2527,7 +2335,6 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				elems,
 
 			matcherOut = matcher ?
-
 				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
 				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 
@@ -2551,8 +2358,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 			// 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 ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
 				}
 			}
 		}
@@ -2560,27 +2367,25 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 		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 ] ) ) {
-
+						if ( (elem = matcherOut[i]) ) {
 							// Restore matcherIn since elem is not yet a final match
-							temp.push( ( matcherIn[ i ] = elem ) );
+							temp.push( (matcherIn[i] = elem) );
 						}
 					}
-					postFinder( null, ( matcherOut = [] ), temp, xml );
+					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 ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
 
-						seed[ temp ] = !( results[ temp ] = elem );
+						seed[temp] = !(results[temp] = elem);
 					}
 				}
 			}
@@ -2598,14 +2403,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				push.apply( results, matcherOut );
 			}
 		}
-	} );
+	});
 }
 
 function matcherFromTokens( tokens ) {
 	var checkContext, matcher, j,
 		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
-		implicitRelative = leadingRelative || Expr.relative[ " " ],
+		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)
@@ -2617,43 +2422,38 @@ function matcherFromTokens( tokens ) {
 		}, implicitRelative, true ),
 		matchers = [ function( elem, context, xml ) {
 			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				( checkContext = context ).nodeType ?
+				(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 ) ];
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
 		} else {
-			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
+			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 ] ) {
+					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 === " " ? "*" : "" } )
+						// 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 && matcherFromTokens( (tokens = tokens.slice( j )) ),
 					j < len && toSelector( tokens )
 				);
 			}
@@ -2674,40 +2474,28 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 				unmatched = seed && [],
 				setMatched = [],
 				contextBackup = outermostContext,
-
 				// We must always have either seed elements or outermost context
-				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
-
+				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 ),
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
 				len = elems.length;
 
 			if ( outermost ) {
-
-				// Support: IE 11+, Edge 17 - 18+
-				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-				// two documents; shallow comparisons work.
-				// eslint-disable-next-line eqeqeq
-				outermostContext = context == document || context || 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++ ) {
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
 				if ( byElement && elem ) {
 					j = 0;
-
-					// Support: IE 11+, Edge 17 - 18+
-					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-					// two documents; shallow comparisons work.
-					// eslint-disable-next-line eqeqeq
-					if ( !context && elem.ownerDocument != document ) {
+					if ( !context && elem.ownerDocument !== document ) {
 						setDocument( elem );
 						xml = !documentIsHTML;
 					}
-					while ( ( matcher = elementMatchers[ j++ ] ) ) {
-						if ( matcher( elem, context || document, xml ) ) {
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
 							results.push( elem );
 							break;
 						}
@@ -2719,9 +2507,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 
 				// Track unmatched elements for set filters
 				if ( bySet ) {
-
 					// They will have gone through all possible matchers
-					if ( ( elem = !matcher && elem ) ) {
+					if ( (elem = !matcher && elem) ) {
 						matchedCount--;
 					}
 
@@ -2745,17 +2532,16 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 			// numerically zero.
 			if ( bySet && i !== matchedCount ) {
 				j = 0;
-				while ( ( matcher = setMatchers[ j++ ] ) ) {
+				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 );
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
 							}
 						}
 					}
@@ -2796,14 +2582,13 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		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 ] );
+			cached = matcherFromTokens( match[i] );
 			if ( cached[ expando ] ) {
 				setMatchers.push( cached );
 			} else {
@@ -2812,10 +2597,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		}
 
 		// Cache the compiled function
-		cached = compilerCache(
-			selector,
-			matcherFromGroupMatchers( elementMatchers, setMatchers )
-		);
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
 
 		// Save selector and tokenization
 		cached.selector = selector;
@@ -2835,7 +2617,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 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 ) );
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
 
 	results = results || [];
 
@@ -2844,12 +2626,11 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 	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 ] ) {
+		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 ];
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
 			if ( !context ) {
 				return results;
 
@@ -2862,22 +2643,20 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 		}
 
 		// Fetch a seed set for right-to-left matching
-		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
 		while ( i-- ) {
-			token = tokens[ i ];
+			token = tokens[i];
 
 			// Abort if we hit a combinator
-			if ( Expr.relative[ ( type = token.type ) ] ) {
+			if ( Expr.relative[ (type = token.type) ] ) {
 				break;
 			}
-			if ( ( find = Expr.find[ type ] ) ) {
-
+			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 = 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 );
@@ -2908,7 +2687,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 // One-time assignments
 
 // Sort stability
-support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
 
 // Support: Chrome 14-35+
 // Always assume duplicates if they aren't passed to the comparison function
@@ -2919,59 +2698,58 @@ 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 ) {
-
+support.sortDetached = assert(function( el ) {
 	// Should return 1, but returns 4 (following)
-	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
-} );
+	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 ) {
+if ( !assert(function( el ) {
 	el.innerHTML = "<a href='#'></a>";
-	return el.firstChild.getAttribute( "href" ) === "#";
-} ) ) {
+	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 ) {
+if ( !support.attributes || !assert(function( el ) {
 	el.innerHTML = "<input/>";
 	el.firstChild.setAttribute( "value", "" );
 	return el.firstChild.getAttribute( "value" ) === "";
-} ) ) {
-	addHandle( "value", function( elem, _name, isXML ) {
+}) ) {
+	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;
-} ) ) {
+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 = elem.getAttributeNode( name )) && val.specified ?
 					val.value :
-					null;
+				null;
 		}
-	} );
+	});
 }
 
 return Sizzle;
 
-} )( window );
+})( window );
 
 
 
@@ -3340,7 +3118,7 @@ jQuery.each( {
 	parents: function( elem ) {
 		return dir( elem, "parentNode" );
 	},
-	parentsUntil: function( elem, _i, until ) {
+	parentsUntil: function( elem, i, until ) {
 		return dir( elem, "parentNode", until );
 	},
 	next: function( elem ) {
@@ -3355,10 +3133,10 @@ jQuery.each( {
 	prevAll: function( elem ) {
 		return dir( elem, "previousSibling" );
 	},
-	nextUntil: function( elem, _i, until ) {
+	nextUntil: function( elem, i, until ) {
 		return dir( elem, "nextSibling", until );
 	},
-	prevUntil: function( elem, _i, until ) {
+	prevUntil: function( elem, i, until ) {
 		return dir( elem, "previousSibling", until );
 	},
 	siblings: function( elem ) {
@@ -3368,24 +3146,18 @@ jQuery.each( {
 		return siblings( elem.firstChild );
 	},
 	contents: function( elem ) {
-		if ( elem.contentDocument != null &&
-
-			// Support: IE 11+
-			// <object> elements with no `data` attribute has an object
-			// `contentDocument` with a `null` prototype.
-			getProto( elem.contentDocument ) ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
 
-			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;
+        }
 
-		// 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 );
+        return jQuery.merge( [], elem.childNodes );
 	}
 }, function( name, fn ) {
 	jQuery.fn[ name ] = function( until, selector ) {
@@ -3717,7 +3489,7 @@ jQuery.extend( {
 					var fns = arguments;
 
 					return jQuery.Deferred( function( newDefer ) {
-						jQuery.each( tuples, function( _i, tuple ) {
+						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 ] ];
@@ -4170,7 +3942,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 			// ...except when executing function values
 			} else {
 				bulk = fn;
-				fn = function( elem, _key, value ) {
+				fn = function( elem, key, value ) {
 					return bulk.call( jQuery( elem ), value );
 				};
 			}
@@ -4205,7 +3977,7 @@ var rmsPrefix = /^-ms-/,
 	rdashAlpha = /-([a-z])/g;
 
 // Used by camelCase as callback to replace()
-function fcamelCase( _all, letter ) {
+function fcamelCase( all, letter ) {
 	return letter.toUpperCase();
 }
 
@@ -4694,26 +4466,6 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
 
 var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
 
-var documentElement = document.documentElement;
-
-
-
-	var isAttached = function( elem ) {
-			return jQuery.contains( elem.ownerDocument, elem );
-		},
-		composed = { composed: true };
-
-	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
-	// Check attachment across shadow DOM boundaries when possible (gh-3504)
-	// Support: iOS 10.0-10.2 only
-	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
-	// leading to errors. We need to check for `getRootNode`.
-	if ( documentElement.getRootNode ) {
-		isAttached = function( elem ) {
-			return jQuery.contains( elem.ownerDocument, elem ) ||
-				elem.getRootNode( composed ) === elem.ownerDocument;
-		};
-	}
 var isHiddenWithinTree = function( elem, el ) {
 
 		// isHiddenWithinTree might be called from jQuery#filter function;
@@ -4728,11 +4480,32 @@ var isHiddenWithinTree = function( elem, el ) {
 			// Support: Firefox <=43 - 45
 			// Disconnected elements can have computed display: none, so first confirm that elem is
 			// in the document.
-			isAttached( elem ) &&
+			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 ) {
@@ -4749,8 +4522,7 @@ function adjustCSS( elem, prop, valueParts, tween ) {
 		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 
 		// Starting value computation is required for potential unit mismatches
-		initialInUnit = elem.nodeType &&
-			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 			rcssNum.exec( jQuery.css( elem, prop ) );
 
 	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@@ -4897,47 +4669,18 @@ jQuery.fn.extend( {
 } );
 var rcheckableType = ( /^(?:checkbox|radio)$/i );
 
-var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
 
 var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
 
 
 
-( 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;
-
-	// Support: IE <=9 only
-	// IE <=9 replaces <option> tags with their contents when inserted outside of
-	// the select element.
-	div.innerHTML = "<option></option>";
-	support.option = !!div.lastChild;
-} )();
-
-
 // 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.
@@ -4949,14 +4692,12 @@ var wrapMap = {
 	_default: [ 0, "", "" ]
 };
 
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
-// Support: IE <=9 only
-if ( !support.option ) {
-	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
-}
-
 
 function getAll( context, tag ) {
 
@@ -5000,7 +4741,7 @@ function setGlobalEval( elems, refElements ) {
 var rhtml = /<|&#?\w+;/;
 
 function buildFragment( elems, context, scripts, selection, ignored ) {
-	var elem, tmp, tag, wrap, attached, j,
+	var elem, tmp, tag, wrap, contains, j,
 		fragment = context.createDocumentFragment(),
 		nodes = [],
 		i = 0,
@@ -5064,13 +4805,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 			continue;
 		}
 
-		attached = isAttached( elem );
+		contains = jQuery.contains( elem.ownerDocument, elem );
 
 		// Append to fragment
 		tmp = getAll( fragment.appendChild( elem ), "script" );
 
 		// Preserve script evaluation history
-		if ( attached ) {
+		if ( contains ) {
 			setGlobalEval( tmp );
 		}
 
@@ -5089,6 +4830,34 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 }
 
 
+( 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/,
@@ -5102,19 +4871,8 @@ function returnFalse() {
 	return false;
 }
 
-// Support: IE <=9 - 11+
-// focus() and blur() are asynchronous, except when they are no-op.
-// So expect focus to be synchronous when the element is already active,
-// and blur to be synchronous when the element is not already active.
-// (focus and blur are always synchronous in other supported browsers,
-// this just defines when we can count on it).
-function expectSync( elem, type ) {
-	return ( elem === safeActiveElement() ) === ( type === "focus" );
-}
-
 // Support: IE <=9 only
-// Accessing document.activeElement can throw unexpectedly
-// https://bugs.jquery.com/ticket/13393
+// See #13393 for more info
 function safeActiveElement() {
 	try {
 		return document.activeElement;
@@ -5197,8 +4955,8 @@ jQuery.event = {
 			special, handlers, type, namespaces, origType,
 			elemData = dataPriv.get( elem );
 
-		// Only attach events to objects that accept data
-		if ( !acceptData( elem ) ) {
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
 			return;
 		}
 
@@ -5222,7 +4980,7 @@ jQuery.event = {
 
 		// Init the element's event structure and main handler, if this is the first
 		if ( !( events = elemData.events ) ) {
-			events = elemData.events = Object.create( null );
+			events = elemData.events = {};
 		}
 		if ( !( eventHandle = elemData.handle ) ) {
 			eventHandle = elemData.handle = function( e ) {
@@ -5380,15 +5138,12 @@ jQuery.event = {
 
 	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 ),
-
-			// Make a writable jQuery.Event from the native event object
-			event = jQuery.event.fix( nativeEvent ),
-
-			handlers = (
-					dataPriv.get( this, "events" ) || Object.create( null )
-				)[ event.type ] || [],
+			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
@@ -5417,10 +5172,9 @@ jQuery.event = {
 			while ( ( handleObj = matched.handlers[ j++ ] ) &&
 				!event.isImmediatePropagationStopped() ) {
 
-				// If the event is namespaced, then each handler is only invoked if it is
-				// specially universal or its namespaces are a superset of the event's.
-				if ( !event.rnamespace || handleObj.namespace === false ||
-					event.rnamespace.test( handleObj.namespace ) ) {
+				// 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;
@@ -5544,51 +5298,39 @@ jQuery.event = {
 			// Prevent triggered image.load events from bubbling to window.load
 			noBubble: true
 		},
-		click: {
+		focus: {
 
-			// Utilize native event to ensure correct state for checkable inputs
-			setup: function( data ) {
-
-				// For mutual compressibility with _default, replace `this` access with a local var.
-				// `|| data` is dead code meant only to preserve the variable through minification.
-				var el = this || data;
-
-				// Claim the first handler
-				if ( rcheckableType.test( el.type ) &&
-					el.click && nodeName( el, "input" ) ) {
-
-					// dataPriv.set( el, "click", ... )
-					leverageNative( el, "click", returnTrue );
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
 				}
-
-				// Return false to allow normal processing in the caller
-				return false;
 			},
-			trigger: function( data ) {
-
-				// For mutual compressibility with _default, replace `this` access with a local var.
-				// `|| data` is dead code meant only to preserve the variable through minification.
-				var el = this || data;
-
-				// Force setup before triggering a click
-				if ( rcheckableType.test( el.type ) &&
-					el.click && nodeName( el, "input" ) ) {
-
-					leverageNative( el, "click" );
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
 				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
 
-				// Return non-false to allow normal event-path propagation
-				return true;
+			// 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, suppress native .click() on links
-			// Also prevent it if we're currently inside a leveraged native-event stack
+			// For cross-browser consistency, don't fire native .click() on links
 			_default: function( event ) {
-				var target = event.target;
-				return rcheckableType.test( target.type ) &&
-					target.click && nodeName( target, "input" ) &&
-					dataPriv.get( target, "click" ) ||
-					nodeName( target, "a" );
+				return nodeName( event.target, "a" );
 			}
 		},
 
@@ -5605,93 +5347,6 @@ jQuery.event = {
 	}
 };
 
-// Ensure the presence of an event listener that handles manually-triggered
-// synthetic events by interrupting progress until reinvoked in response to
-// *native* events that it fires directly, ensuring that state changes have
-// already occurred before other listeners are invoked.
-function leverageNative( el, type, expectSync ) {
-
-	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
-	if ( !expectSync ) {
-		if ( dataPriv.get( el, type ) === undefined ) {
-			jQuery.event.add( el, type, returnTrue );
-		}
-		return;
-	}
-
-	// Register the controller as a special universal handler for all event namespaces
-	dataPriv.set( el, type, false );
-	jQuery.event.add( el, type, {
-		namespace: false,
-		handler: function( event ) {
-			var notAsync, result,
-				saved = dataPriv.get( this, type );
-
-			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
-
-				// Interrupt processing of the outer synthetic .trigger()ed event
-				// Saved data should be false in such cases, but might be a leftover capture object
-				// from an async native handler (gh-4350)
-				if ( !saved.length ) {
-
-					// Store arguments for use when handling the inner native event
-					// There will always be at least one argument (an event object), so this array
-					// will not be confused with a leftover capture object.
-					saved = slice.call( arguments );
-					dataPriv.set( this, type, saved );
-
-					// Trigger the native event and capture its result
-					// Support: IE <=9 - 11+
-					// focus() and blur() are asynchronous
-					notAsync = expectSync( this, type );
-					this[ type ]();
-					result = dataPriv.get( this, type );
-					if ( saved !== result || notAsync ) {
-						dataPriv.set( this, type, false );
-					} else {
-						result = {};
-					}
-					if ( saved !== result ) {
-
-						// Cancel the outer synthetic event
-						event.stopImmediatePropagation();
-						event.preventDefault();
-						return result.value;
-					}
-
-				// If this is an inner synthetic event for an event with a bubbling surrogate
-				// (focus or blur), assume that the surrogate already propagated from triggering the
-				// native event and prevent that from happening again here.
-				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
-				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
-				// less bad than duplication.
-				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
-					event.stopPropagation();
-				}
-
-			// If this is a native event triggered above, everything is now in order
-			// Fire an inner synthetic event with the original arguments
-			} else if ( saved.length ) {
-
-				// ...and capture the result
-				dataPriv.set( this, type, {
-					value: jQuery.event.trigger(
-
-						// Support: IE <=9 - 11+
-						// Extend with the prototype to reset the above stopImmediatePropagation()
-						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
-						saved.slice( 1 ),
-						this
-					)
-				} );
-
-				// Abort handling of the native event
-				event.stopImmediatePropagation();
-			}
-		}
-	} );
-}
-
 jQuery.removeEvent = function( elem, type, handle ) {
 
 	// This "if" is needed for plain objects
@@ -5804,7 +5459,6 @@ jQuery.each( {
 	shiftKey: true,
 	view: true,
 	"char": true,
-	code: true,
 	charCode: true,
 	key: true,
 	keyCode: true,
@@ -5851,33 +5505,6 @@ jQuery.each( {
 	}
 }, jQuery.event.addProp );
 
-jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
-	jQuery.event.special[ type ] = {
-
-		// Utilize native event if possible so blur/focus sequence is correct
-		setup: function() {
-
-			// Claim the first handler
-			// dataPriv.set( this, "focus", ... )
-			// dataPriv.set( this, "blur", ... )
-			leverageNative( this, type, expectSync );
-
-			// Return false to allow normal processing in the caller
-			return false;
-		},
-		trigger: function() {
-
-			// Force setup before trigger
-			leverageNative( this, type );
-
-			// Return non-false to allow normal event-path propagation
-			return true;
-		},
-
-		delegateType: delegateType
-	};
-} );
-
 // 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
@@ -5963,6 +5590,13 @@ jQuery.fn.extend( {
 
 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/
@@ -5999,7 +5633,7 @@ function restoreScript( elem ) {
 }
 
 function cloneCopyEvent( src, dest ) {
-	var i, l, type, pdataOld, udataOld, udataCur, events;
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
 
 	if ( dest.nodeType !== 1 ) {
 		return;
@@ -6007,11 +5641,13 @@ function cloneCopyEvent( src, dest ) {
 
 	// 1. Copy private data: events, handlers, etc.
 	if ( dataPriv.hasData( src ) ) {
-		pdataOld = dataPriv.get( src );
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
 		events = pdataOld.events;
 
 		if ( events ) {
-			dataPriv.remove( dest, "handle events" );
+			delete pdataCur.handle;
+			pdataCur.events = {};
 
 			for ( type in events ) {
 				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
@@ -6047,7 +5683,7 @@ function fixInput( src, dest ) {
 function domManip( collection, args, callback, ignored ) {
 
 	// Flatten any nested arrays
-	args = flat( args );
+	args = concat.apply( [], args );
 
 	var fragment, first, scripts, hasScripts, node, doc,
 		i = 0,
@@ -6119,13 +5755,11 @@ function domManip( collection, args, callback, ignored ) {
 						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
 
 							// Optional AJAX dependency, but won't run scripts if not present
-							if ( jQuery._evalUrl && !node.noModule ) {
-								jQuery._evalUrl( node.src, {
-									nonce: node.nonce || node.getAttribute( "nonce" )
-								}, doc );
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
 							}
 						} else {
-							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
 						}
 					}
 				}
@@ -6147,7 +5781,7 @@ function remove( elem, selector, keepData ) {
 		}
 
 		if ( node.parentNode ) {
-			if ( keepData && isAttached( node ) ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
 				setGlobalEval( getAll( node, "script" ) );
 			}
 			node.parentNode.removeChild( node );
@@ -6159,13 +5793,13 @@ function remove( elem, selector, keepData ) {
 
 jQuery.extend( {
 	htmlPrefilter: function( html ) {
-		return html;
+		return html.replace( rxhtmlTag, "<$1></$2>" );
 	},
 
 	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
 		var i, l, srcElements, destElements,
 			clone = elem.cloneNode( true ),
-			inPage = isAttached( elem );
+			inPage = jQuery.contains( elem.ownerDocument, elem );
 
 		// Fix IE cloning issues
 		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@@ -6421,27 +6055,6 @@ var getStyles = function( elem ) {
 		return view.getComputedStyle( elem );
 	};
 
-var swap = function( elem, options, callback ) {
-	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.call( elem );
-
-	// Revert the old values
-	for ( name in options ) {
-		elem.style[ name ] = old[ name ];
-	}
-
-	return ret;
-};
-
-
 var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 
 
@@ -6482,10 +6095,8 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 
 		// Support: IE 9 only
 		// Detect overflow:scroll screwiness (gh-3699)
-		// Support: Chrome <=64
-		// Don't get tricked when zoom affects offsetWidth (gh-4029)
 		div.style.position = "absolute";
-		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
 
 		documentElement.removeChild( container );
 
@@ -6499,7 +6110,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 	}
 
 	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
-		reliableTrDimensionsVal, reliableMarginLeftVal,
+		reliableMarginLeftVal,
 		container = document.createElement( "div" ),
 		div = document.createElement( "div" );
 
@@ -6534,35 +6145,6 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 		scrollboxSize: function() {
 			computeStyleTests();
 			return scrollboxSizeVal;
-		},
-
-		// Support: IE 9 - 11+, Edge 15 - 18+
-		// IE/Edge misreport `getComputedStyle` of table rows with width/height
-		// set in CSS while `offset*` properties report correct values.
-		// Behavior in IE 9 is more subtle than in newer versions & it passes
-		// some versions of this test; make sure not to make it pass there!
-		reliableTrDimensions: function() {
-			var table, tr, trChild, trStyle;
-			if ( reliableTrDimensionsVal == null ) {
-				table = document.createElement( "table" );
-				tr = document.createElement( "tr" );
-				trChild = document.createElement( "div" );
-
-				table.style.cssText = "position:absolute;left:-11111px";
-				tr.style.height = "1px";
-				trChild.style.height = "9px";
-
-				documentElement
-					.appendChild( table )
-					.appendChild( tr )
-					.appendChild( trChild );
-
-				trStyle = window.getComputedStyle( tr );
-				reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;
-
-				documentElement.removeChild( table );
-			}
-			return reliableTrDimensionsVal;
 		}
 	} );
 } )();
@@ -6585,7 +6167,7 @@ function curCSS( elem, name, computed ) {
 	if ( computed ) {
 		ret = computed.getPropertyValue( name ) || computed[ name ];
 
-		if ( ret === "" && !isAttached( elem ) ) {
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
 			ret = jQuery.style( elem, name );
 		}
 
@@ -6641,13 +6223,30 @@ function addGetHookIf( conditionFn, hookFn ) {
 }
 
 
-var cssPrefixes = [ "Webkit", "Moz", "ms" ],
-	emptyStyle = document.createElement( "div" ).style,
-	vendorProps = {};
+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 vendor-prefixed property or undefined
+// 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;
@@ -6660,34 +6259,17 @@ function vendorPropName( name ) {
 	}
 }
 
-// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
 function finalPropName( name ) {
-	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
-
-	if ( final ) {
-		return final;
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
 	}
-	if ( name in emptyStyle ) {
-		return name;
-	}
-	return vendorProps[ name ] = vendorPropName( name ) || name;
+	return ret;
 }
 
-
-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"
-	};
-
-function setPositiveNumber( _elem, value, subtract ) {
+function setPositiveNumber( elem, value, subtract ) {
 
 	// Any relative (+/-) values have already been
 	// normalized at this point
@@ -6758,10 +6340,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
 			delta -
 			extra -
 			0.5
-
-		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
-		// Use an explicit zero to avoid NaN (gh-3964)
-		) ) || 0;
+		) );
 	}
 
 	return delta;
@@ -6771,16 +6350,9 @@ function getWidthOrHeight( elem, dimension, extra ) {
 
 	// Start with computed style
 	var styles = getStyles( elem ),
-
-		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
-		// Fake content-box until we know it's needed to know the true value.
-		boxSizingNeeded = !support.boxSizingReliable() || extra,
-		isBorderBox = boxSizingNeeded &&
-			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-		valueIsBorderBox = isBorderBox,
-
 		val = curCSS( elem, dimension, styles ),
-		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
+		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.
@@ -6791,38 +6363,22 @@ function getWidthOrHeight( elem, dimension, extra ) {
 		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 ] );
 
-	// Support: IE 9 - 11 only
-	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
-	// In those cases, the computed value can be trusted to be border-box.
-	if ( ( !support.boxSizingReliable() && isBorderBox ||
-
-		// Support: IE 10 - 11+, Edge 15 - 18+
-		// IE/Edge misreport `getComputedStyle` of table rows with width/height
-		// set in CSS while `offset*` properties report correct values.
-		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
-		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
-
-		// Fall back to offsetWidth/offsetHeight when value is "auto"
-		// This happens for inline elements with no explicit setting (gh-3571)
-		val === "auto" ||
-
-		// Support: Android <=4.1 - 4.3 only
-		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
-		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
+	// 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" ) {
 
-		// Make sure the element is visible & connected
-		elem.getClientRects().length ) {
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
 
-		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
-		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
-		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
-		// retrieved value as a content box dimension.
-		valueIsBorderBox = offsetProp in elem;
-		if ( valueIsBorderBox ) {
-			val = elem[ offsetProp ];
-		}
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
 	}
 
 	// Normalize "" and auto
@@ -6868,13 +6424,6 @@ jQuery.extend( {
 		"flexGrow": true,
 		"flexShrink": true,
 		"fontWeight": true,
-		"gridArea": true,
-		"gridColumn": true,
-		"gridColumnEnd": true,
-		"gridColumnStart": true,
-		"gridRow": true,
-		"gridRowEnd": true,
-		"gridRowStart": true,
 		"lineHeight": true,
 		"opacity": true,
 		"order": true,
@@ -6930,9 +6479,7 @@ jQuery.extend( {
 			}
 
 			// If a number was passed in, add the unit (except for certain CSS properties)
-			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
-			// "px" to a few hardcoded values.
-			if ( type === "number" && !isCustomProp ) {
+			if ( type === "number" ) {
 				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
 			}
 
@@ -7006,7 +6553,7 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "height", "width" ], function( _i, dimension ) {
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
 	jQuery.cssHooks[ dimension ] = {
 		get: function( elem, computed, extra ) {
 			if ( computed ) {
@@ -7032,29 +6579,18 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
 		set: function( elem, value, extra ) {
 			var matches,
 				styles = getStyles( elem ),
-
-				// Only read styles.position if the test has a chance to fail
-				// to avoid forcing a reflow.
-				scrollboxSizeBuggy = !support.scrollboxSize() &&
-					styles.position === "absolute",
-
-				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
-				boxSizingNeeded = scrollboxSizeBuggy || extra,
-				isBorderBox = boxSizingNeeded &&
-					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-				subtract = extra ?
-					boxModelAdjustment(
-						elem,
-						dimension,
-						extra,
-						isBorderBox,
-						styles
-					) :
-					0;
+				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 && scrollboxSizeBuggy ) {
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
 				subtract -= Math.ceil(
 					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
 					parseFloat( styles[ dimension ] ) -
@@ -7222,9 +6758,9 @@ Tween.propHooks = {
 			// 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 && (
-					jQuery.cssHooks[ tween.prop ] ||
-					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
+			} 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;
@@ -7779,7 +7315,7 @@ jQuery.fn.extend( {
 			clearQueue = type;
 			type = undefined;
 		}
-		if ( clearQueue ) {
+		if ( clearQueue && type !== false ) {
 			this.queue( type || "fx", [] );
 		}
 
@@ -7862,7 +7398,7 @@ jQuery.fn.extend( {
 	}
 } );
 
-jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
+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" ?
@@ -8083,7 +7619,7 @@ boolHook = {
 	}
 };
 
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, 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 ) {
@@ -8707,9 +8243,7 @@ jQuery.extend( jQuery.event, {
 				special.bindType || type;
 
 			// jQuery handler
-			handle = (
-					dataPriv.get( cur, "events" ) || Object.create( null )
-				)[ event.type ] &&
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
 				dataPriv.get( cur, "handle" );
 			if ( handle ) {
 				handle.apply( cur, data );
@@ -8820,10 +8354,7 @@ if ( !support.focusin ) {
 
 		jQuery.event.special[ fix ] = {
 			setup: function() {
-
-				// Handle: regular nodes (via `this.ownerDocument`), window
-				// (via `this.document`) & document (via `this`).
-				var doc = this.ownerDocument || this.document || this,
+				var doc = this.ownerDocument || this,
 					attaches = dataPriv.access( doc, fix );
 
 				if ( !attaches ) {
@@ -8832,7 +8363,7 @@ if ( !support.focusin ) {
 				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 			},
 			teardown: function() {
-				var doc = this.ownerDocument || this.document || this,
+				var doc = this.ownerDocument || this,
 					attaches = dataPriv.access( doc, fix ) - 1;
 
 				if ( !attaches ) {
@@ -8848,7 +8379,7 @@ if ( !support.focusin ) {
 }
 var location = window.location;
 
-var nonce = { guid: Date.now() };
+var nonce = Date.now();
 
 var rquery = ( /\?/ );
 
@@ -8936,10 +8467,6 @@ jQuery.param = function( a, traditional ) {
 				encodeURIComponent( value == null ? "" : value );
 		};
 
-	if ( a == null ) {
-		return "";
-	}
-
 	// If an array was passed in, assume that it is an array of form elements.
 	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
 
@@ -8980,7 +8507,7 @@ jQuery.fn.extend( {
 				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 				( this.checked || !rcheckableType.test( type ) );
 		} )
-		.map( function( _i, elem ) {
+		.map( function( i, elem ) {
 			var val = jQuery( this ).val();
 
 			if ( val == null ) {
@@ -9442,14 +8969,12 @@ jQuery.extend( {
 						if ( !responseHeaders ) {
 							responseHeaders = {};
 							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
-								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
-									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
-										.concat( match[ 2 ] );
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
 							}
 						}
-						match = responseHeaders[ key.toLowerCase() + " " ];
+						match = responseHeaders[ key.toLowerCase() ];
 					}
-					return match == null ? null : match.join( ", " );
+					return match == null ? null : match;
 				},
 
 				// Raw string
@@ -9593,8 +9118,7 @@ jQuery.extend( {
 			// Add or update anti-cache param if needed
 			if ( s.cache === false ) {
 				cacheURL = cacheURL.replace( rantiCache, "$1" );
-				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
-					uncached;
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
 			}
 
 			// Put hash and anti-cache on the URL that will be requested (gh-1732)
@@ -9727,11 +9251,6 @@ jQuery.extend( {
 				response = ajaxHandleResponses( s, jqXHR, responses );
 			}
 
-			// Use a noop converter for missing script
-			if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
-				s.converters[ "text script" ] = function() {};
-			}
-
 			// Convert no matter what (that way responseXXX fields are always set)
 			response = ajaxConvert( s, response, jqXHR, isSuccess );
 
@@ -9822,7 +9341,7 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "get", "post" ], function( _i, method ) {
+jQuery.each( [ "get", "post" ], function( i, method ) {
 	jQuery[ method ] = function( url, data, callback, type ) {
 
 		// Shift arguments if data argument was omitted
@@ -9843,17 +9362,8 @@ jQuery.each( [ "get", "post" ], function( _i, method ) {
 	};
 } );
 
-jQuery.ajaxPrefilter( function( s ) {
-	var i;
-	for ( i in s.headers ) {
-		if ( i.toLowerCase() === "content-type" ) {
-			s.contentType = s.headers[ i ] || "";
-		}
-	}
-} );
-
 
-jQuery._evalUrl = function( url, options, doc ) {
+jQuery._evalUrl = function( url ) {
 	return jQuery.ajax( {
 		url: url,
 
@@ -9863,16 +9373,7 @@ jQuery._evalUrl = function( url, options, doc ) {
 		cache: true,
 		async: false,
 		global: false,
-
-		// Only evaluate the response if it is successful (gh-4126)
-		// dataFilter is not invoked for failure responses, so using it instead
-		// of the default converter is kludgy but it works.
-		converters: {
-			"text script": function() {}
-		},
-		dataFilter: function( response ) {
-			jQuery.globalEval( response, options, doc );
-		}
+		"throws": true
 	} );
 };
 
@@ -10155,21 +9656,24 @@ jQuery.ajaxPrefilter( "script", function( s ) {
 // Bind script tag hack transport
 jQuery.ajaxTransport( "script", function( s ) {
 
-	// This transport only deals with cross domain or forced-by-attrs requests
-	if ( s.crossDomain || s.scriptAttrs ) {
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
 		var script, callback;
 		return {
 			send: function( _, complete ) {
-				script = jQuery( "<script>" )
-					.attr( s.scriptAttrs || {} )
-					.prop( { charset: s.scriptCharset, src: s.url } )
-					.on( "load error", callback = function( evt ) {
+				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 ] );
@@ -10193,7 +9697,7 @@ var oldCallbacks = [],
 jQuery.ajaxSetup( {
 	jsonp: "callback",
 	jsonpCallback: function() {
-		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
 		this[ callback ] = true;
 		return callback;
 	}
@@ -10410,6 +9914,23 @@ jQuery.fn.load = function( url, params, callback ) {
 
 
 
+// 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;
@@ -10466,12 +9987,6 @@ jQuery.offset = {
 			options.using.call( elem, props );
 
 		} else {
-			if ( typeof props.top === "number" ) {
-				props.top += "px";
-			}
-			if ( typeof props.left === "number" ) {
-				props.left += "px";
-			}
 			curElem.css( props );
 		}
 	}
@@ -10622,7 +10137,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
 // 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.each( [ "top", "left" ], function( i, prop ) {
 	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
 		function( elem, computed ) {
 			if ( computed ) {
@@ -10685,19 +10200,25 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
 } );
 
 
-jQuery.each( [
-	"ajaxStart",
-	"ajaxStop",
-	"ajaxComplete",
-	"ajaxError",
-	"ajaxSuccess",
-	"ajaxSend"
-], function( _i, type ) {
-	jQuery.fn[ type ] = function( fn ) {
-		return this.on( type, fn );
+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 );
+	}
+} );
+
 
 
 
@@ -10719,33 +10240,9 @@ jQuery.fn.extend( {
 		return arguments.length === 1 ?
 			this.off( selector, "**" ) :
 			this.off( types, selector || "**", fn );
-	},
-
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
 	}
 } );
 
-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 );
-		};
-	} );
-
-
-
-
-// Support: Android <=4.0 only
-// Make sure we trim BOM and NBSP
-var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
-
 // Bind a function to a context, optionally partially applying any
 // arguments.
 // jQuery.proxy is deprecated to promote standards (specifically Function#bind)
@@ -10808,11 +10305,6 @@ jQuery.isNumeric = function( obj ) {
 		!isNaN( obj - parseFloat( obj ) );
 };
 
-jQuery.trim = function( text ) {
-	return text == null ?
-		"" :
-		( text + "" ).replace( rtrim, "" );
-};
 
 
 
@@ -10861,7 +10353,7 @@ jQuery.noConflict = function( deep ) {
 // Expose jQuery and $ identifiers, even in AMD
 // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
 // and CommonJS for browser emulators (#13566)
-if ( typeof noGlobal === "undefined" ) {
+if ( !noGlobal ) {
 	window.jQuery = window.$ = jQuery;
 }
 
diff --git a/docs/4.2/api/jquery/jquery-3.5.1.js b/docs/4.2/api/jquery/jquery-3.3.1.js
similarity index 86%
rename from docs/4.2/api/jquery/jquery-3.5.1.js
rename to docs/4.2/api/jquery/jquery-3.3.1.js
index f2fa5e858..01b858f1b 100644
--- a/docs/4.2/api/jquery/jquery-3.5.1.js
+++ b/docs/4.2/api/jquery/jquery-3.3.1.js
@@ -1,5 +1,5 @@
 /*!
- * jQuery JavaScript Library v3.5.1
+ * jQuery JavaScript Library v3.3.1
  * https://jquery.com/
  *
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
  * Released under the MIT license
  * https://jquery.org/license
  *
- * Date: 2020-05-04T22:49Z
+ * Date: 2018-01-20T17:24Z
  */
 ( function( global, factory ) {
 
@@ -47,16 +47,13 @@
 
 var arr = [];
 
+var document = window.document;
+
 var getProto = Object.getPrototypeOf;
 
 var slice = arr.slice;
 
-var flat = arr.flat ? function( array ) {
-	return arr.flat.call( array );
-} : function( array ) {
-	return arr.concat.apply( [], array );
-};
-
+var concat = arr.concat;
 
 var push = arr.push;
 
@@ -89,40 +86,25 @@ var isWindow = function isWindow( obj ) {
 	};
 
 
-var document = window.document;
-
 
 
 	var preservedScriptAttributes = {
 		type: true,
 		src: true,
-		nonce: true,
 		noModule: true
 	};
 
-	function DOMEval( code, node, doc ) {
+	function DOMEval( code, doc, node ) {
 		doc = doc || document;
 
-		var i, val,
+		var i,
 			script = doc.createElement( "script" );
 
 		script.text = code;
 		if ( node ) {
 			for ( i in preservedScriptAttributes ) {
-
-				// Support: Firefox 64+, Edge 18+
-				// Some browsers don't support the "nonce" property on scripts.
-				// On the other hand, just using `getAttribute` is not enough as
-				// the `nonce` attribute is reset to an empty string whenever it
-				// becomes browsing-context connected.
-				// See https://github.com/whatwg/html/issues/2369
-				// See https://html.spec.whatwg.org/#nonce-attributes
-				// The `node.getAttribute` check was added for the sake of
-				// `jQuery.globalEval` so that it can fake a nonce-containing node
-				// via an object.
-				val = node[ i ] || node.getAttribute && node.getAttribute( i );
-				if ( val ) {
-					script.setAttribute( i, val );
+				if ( node[ i ] ) {
+					script[ i ] = node[ i ];
 				}
 			}
 		}
@@ -147,7 +129,7 @@ function toType( obj ) {
 
 
 var
-	version = "3.5.1",
+	version = "3.3.1",
 
 	// Define a local copy of jQuery
 	jQuery = function( selector, context ) {
@@ -155,7 +137,11 @@ var
 		// 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 = {
 
@@ -221,18 +207,6 @@ jQuery.fn = jQuery.prototype = {
 		return this.eq( -1 );
 	},
 
-	even: function() {
-		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
-			return ( i + 1 ) % 2;
-		} ) );
-	},
-
-	odd: function() {
-		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
-			return i % 2;
-		} ) );
-	},
-
 	eq: function( i ) {
 		var len = this.length,
 			j = +i + ( i < 0 ? len : 0 );
@@ -284,28 +258,25 @@ jQuery.extend = jQuery.fn.extend = function() {
 
 			// Extend the base object
 			for ( name in options ) {
+				src = target[ name ];
 				copy = options[ name ];
 
-				// Prevent Object.prototype pollution
 				// Prevent never-ending loop
-				if ( name === "__proto__" || target === copy ) {
+				if ( target === copy ) {
 					continue;
 				}
 
 				// Recurse if we're merging plain objects or arrays
 				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 					( copyIsArray = Array.isArray( copy ) ) ) ) {
-					src = target[ name ];
 
-					// Ensure proper type for the source value
-					if ( copyIsArray && !Array.isArray( src ) ) {
-						clone = [];
-					} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
-						clone = {};
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && Array.isArray( src ) ? src : [];
+
 					} else {
-						clone = src;
+						clone = src && jQuery.isPlainObject( src ) ? src : {};
 					}
-					copyIsArray = false;
 
 					// Never move original objects, clone them
 					target[ name ] = jQuery.extend( deep, clone, copy );
@@ -358,6 +329,9 @@ jQuery.extend( {
 	},
 
 	isEmptyObject: function( obj ) {
+
+		/* eslint-disable no-unused-vars */
+		// See https://github.com/eslint/eslint/issues/6125
 		var name;
 
 		for ( name in obj ) {
@@ -366,10 +340,9 @@ jQuery.extend( {
 		return true;
 	},
 
-	// Evaluates a script in a provided context; falls back to the global one
-	// if not specified.
-	globalEval: function( code, options, doc ) {
-		DOMEval( code, { nonce: options && options.nonce }, doc );
+	// Evaluates a script in a global context
+	globalEval: function( code ) {
+		DOMEval( code );
 	},
 
 	each: function( obj, callback ) {
@@ -393,6 +366,13 @@ jQuery.extend( {
 		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 || [];
@@ -479,7 +459,7 @@ jQuery.extend( {
 		}
 
 		// Flatten any nested arrays
-		return flat( ret );
+		return concat.apply( [], ret );
 	},
 
 	// A global GUID counter for objects
@@ -496,7 +476,7 @@ if ( typeof Symbol === "function" ) {
 
 // Populate the class2type map
 jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( _i, name ) {
+function( i, name ) {
 	class2type[ "[object " + name + "]" ] = name.toLowerCase();
 } );
 
@@ -518,16 +498,17 @@ function isArrayLike( obj ) {
 }
 var Sizzle =
 /*!
- * Sizzle CSS Selector Engine v2.3.5
+ * Sizzle CSS Selector Engine v2.3.3
  * https://sizzlejs.com/
  *
- * Copyright JS Foundation and other contributors
+ * Copyright jQuery Foundation and other contributors
  * Released under the MIT license
- * https://js.foundation/
+ * http://jquery.org/license
  *
- * Date: 2020-03-14
+ * Date: 2016-08-08
  */
-( function( window ) {
+(function( window ) {
+
 var i,
 	support,
 	Expr,
@@ -558,7 +539,6 @@ var i,
 	classCache = createCache(),
 	tokenCache = createCache(),
 	compilerCache = createCache(),
-	nonnativeSelectorCache = createCache(),
 	sortOrder = function( a, b ) {
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -567,71 +547,61 @@ var i,
 	},
 
 	// Instance methods
-	hasOwn = ( {} ).hasOwnProperty,
+	hasOwn = ({}).hasOwnProperty,
 	arr = [],
 	pop = arr.pop,
-	pushNative = arr.push,
+	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 ) {
+			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",
+	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]",
 
-	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
-	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
-		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
+	// 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 + "*\\]",
+		// "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" ),
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
 
 	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
-		"*" ),
-	rdescend = new RegExp( whitespace + "|>" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
 
 	rpseudo = new RegExp( pseudos ),
 	ridentifier = new RegExp( "^" + identifier + "$" ),
@@ -642,19 +612,16 @@ var i,
 		"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" ),
+		"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" )
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
 	},
 
-	rhtml = /HTML$/i,
 	rinputs = /^(?:input|select|textarea|button)$/i,
 	rheader = /^h\d$/i,
 
@@ -667,21 +634,18 @@ var i,
 
 	// CSS escapes
 	// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
-	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
-	funescape = function( escape, nonHex ) {
-		var high = "0x" + escape.slice( 1 ) - 0x10000;
-
-		return nonHex ?
-
-			// Strip the backslash prefix from a non-hex escape sequence
-			nonHex :
-
-			// Replace a hexadecimal escape sequence with the encoded Unicode code point
-			// Support: IE <=11+
-			// For values outside the Basic Multilingual Plane (BMP), manually construct a
-			// surrogate pair
+	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 );
 	},
 
@@ -697,8 +661,7 @@ var i,
 			}
 
 			// Control characters and (dependent upon position) numbers get escaped as code points
-			return ch.slice( 0, -1 ) + "\\" +
-				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
 		}
 
 		// Other potentially-special ASCII characters get backslash-escaped
@@ -713,9 +676,9 @@ var i,
 		setDocument();
 	},
 
-	inDisabledFieldset = addCombinator(
+	disabledAncestor = addCombinator(
 		function( elem ) {
-			return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
+			return elem.disabled === true && ("form" in elem || "label" in elem);
 		},
 		{ dir: "parentNode", next: "legend" }
 	);
@@ -723,20 +686,18 @@ var i,
 // Optimize for push.apply( _, NodeList )
 try {
 	push.apply(
-		( arr = slice.call( preferredDoc.childNodes ) ),
+		(arr = slice.call( preferredDoc.childNodes )),
 		preferredDoc.childNodes
 	);
-
 	// Support: Android<4.0
 	// Detect silently failing push.apply
-	// eslint-disable-next-line no-unused-expressions
 	arr[ preferredDoc.childNodes.length ].nodeType;
 } catch ( e ) {
 	push = { apply: arr.length ?
 
 		// Leverage slice if possible
 		function( target, els ) {
-			pushNative.apply( target, slice.call( els ) );
+			push_native.apply( target, slice.call(els) );
 		} :
 
 		// Support: IE<9
@@ -744,9 +705,8 @@ try {
 		function( target, els ) {
 			var j = target.length,
 				i = 0;
-
 			// Can't trust NodeList.length
-			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
+			while ( (target[j++] = els[i++]) ) {}
 			target.length = j - 1;
 		}
 	};
@@ -770,21 +730,24 @@ function Sizzle( selector, context, results, seed ) {
 
 	// Try to shortcut find operations (as opposed to filters) in HTML documents
 	if ( !seed ) {
-		setDocument( context );
+
+		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 ) ) ) {
+			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
 
 				// ID selector
-				if ( ( m = match[ 1 ] ) ) {
+				if ( (m = match[1]) ) {
 
 					// Document context
 					if ( nodeType === 9 ) {
-						if ( ( elem = context.getElementById( m ) ) ) {
+						if ( (elem = context.getElementById( m )) ) {
 
 							// Support: IE, Opera, Webkit
 							// TODO: identify versions
@@ -803,7 +766,7 @@ function Sizzle( selector, context, results, seed ) {
 						// Support: IE, Opera, Webkit
 						// TODO: identify versions
 						// getElementById can match elements by name instead of ID
-						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
+						if ( newContext && (elem = newContext.getElementById( m )) &&
 							contains( context, elem ) &&
 							elem.id === m ) {
 
@@ -813,12 +776,12 @@ function Sizzle( selector, context, results, seed ) {
 					}
 
 				// Type selector
-				} else if ( match[ 2 ] ) {
+				} else if ( match[2] ) {
 					push.apply( results, context.getElementsByTagName( selector ) );
 					return results;
 
 				// Class selector
-				} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
+				} else if ( (m = match[3]) && support.getElementsByClassName &&
 					context.getElementsByClassName ) {
 
 					push.apply( results, context.getElementsByClassName( m ) );
@@ -828,62 +791,50 @@ function Sizzle( selector, context, results, seed ) {
 
 			// Take advantage of querySelectorAll
 			if ( support.qsa &&
-				!nonnativeSelectorCache[ selector + " " ] &&
-				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
-
-				// Support: IE 8 only
-				// Exclude object elements
-				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
-
-				newSelector = selector;
-				newContext = context;
-
-				// qSA considers elements outside a scoping root when evaluating child or
-				// descendant combinators, which is not what we want.
-				// In such cases, we work around the behavior by prefixing every selector in the
-				// list with an ID selector referencing the scope context.
-				// The technique has to be used as well when a leading combinator is used
-				// as such selectors are not recognized by querySelectorAll.
-				// Thanks to Andrew Dupont for this technique.
-				if ( nodeType === 1 &&
-					( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
+				!compilerCache[ selector + " " ] &&
+				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
 
-					// Expand context for sibling selectors
-					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
-						context;
+				if ( nodeType !== 1 ) {
+					newContext = context;
+					newSelector = selector;
 
-					// We can use :scope instead of the ID hack if the browser
-					// supports it & if we're not changing the context.
-					if ( newContext !== context || !support.scope ) {
+				// 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 ) );
-						}
+					// 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 ? "#" + nid : ":scope" ) + " " +
-							toSelector( groups[ i ] );
+						groups[i] = "#" + nid + " " + toSelector( groups[i] );
 					}
 					newSelector = groups.join( "," );
+
+					// Expand context for sibling selectors
+					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+						context;
 				}
 
-				try {
-					push.apply( results,
-						newContext.querySelectorAll( newSelector )
-					);
-					return results;
-				} catch ( qsaError ) {
-					nonnativeSelectorCache( selector, true );
-				} finally {
-					if ( nid === expando ) {
-						context.removeAttribute( "id" );
+				if ( newSelector ) {
+					try {
+						push.apply( results,
+							newContext.querySelectorAll( newSelector )
+						);
+						return results;
+					} catch ( qsaError ) {
+					} finally {
+						if ( nid === expando ) {
+							context.removeAttribute( "id" );
+						}
 					}
 				}
 			}
@@ -904,14 +855,12 @@ 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[ key + " " ] = value);
 	}
 	return cache;
 }
@@ -930,19 +879,17 @@ function markFunction( fn ) {
  * @param {Function} fn Passed the created element and returns a boolean result
  */
 function assert( fn ) {
-	var el = document.createElement( "fieldset" );
+	var el = document.createElement("fieldset");
 
 	try {
 		return !!fn( el );
-	} catch ( e ) {
+	} catch (e) {
 		return false;
 	} finally {
-
 		// Remove from its parent by default
 		if ( el.parentNode ) {
 			el.parentNode.removeChild( el );
 		}
-
 		// release memory in IE
 		el = null;
 	}
@@ -954,11 +901,11 @@ function assert( fn ) {
  * @param {Function} handler The method that will be applied
  */
 function addHandle( attrs, handler ) {
-	var arr = attrs.split( "|" ),
+	var arr = attrs.split("|"),
 		i = arr.length;
 
 	while ( i-- ) {
-		Expr.attrHandle[ arr[ i ] ] = handler;
+		Expr.attrHandle[ arr[i] ] = handler;
 	}
 }
 
@@ -980,7 +927,7 @@ function siblingCheck( a, b ) {
 
 	// Check if b follows a
 	if ( cur ) {
-		while ( ( cur = cur.nextSibling ) ) {
+		while ( (cur = cur.nextSibling) ) {
 			if ( cur === b ) {
 				return -1;
 			}
@@ -1008,7 +955,7 @@ function createInputPseudo( type ) {
 function createButtonPseudo( type ) {
 	return function( elem ) {
 		var name = elem.nodeName.toLowerCase();
-		return ( name === "input" || name === "button" ) && elem.type === type;
+		return (name === "input" || name === "button") && elem.type === type;
 	};
 }
 
@@ -1051,7 +998,7 @@ function createDisabledPseudo( disabled ) {
 					// Where there is no isDisabled, check manually
 					/* jshint -W018 */
 					elem.isDisabled !== !disabled &&
-					inDisabledFieldset( elem ) === disabled;
+						disabledAncestor( elem ) === disabled;
 			}
 
 			return elem.disabled === disabled;
@@ -1073,21 +1020,21 @@ function createDisabledPseudo( disabled ) {
  * @param {Function} fn
  */
 function createPositionalPseudo( fn ) {
-	return markFunction( function( argument ) {
+	return markFunction(function( argument ) {
 		argument = +argument;
-		return markFunction( function( seed, matches ) {
+		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 ] );
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
 				}
 			}
-		} );
-	} );
+		});
+	});
 }
 
 /**
@@ -1108,13 +1055,10 @@ support = Sizzle.support = {};
  * @returns {Boolean} True iff elem is a non-HTML XML node
  */
 isXML = Sizzle.isXML = function( elem ) {
-	var namespace = elem.namespaceURI,
-		docElem = ( elem.ownerDocument || elem ).documentElement;
-
-	// Support: IE <=8
-	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
-	// https://bugs.jquery.com/ticket/4833
-	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
+	// 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;
 };
 
 /**
@@ -1127,11 +1071,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		doc = node ? node.ownerDocument || node : preferredDoc;
 
 	// Return early if doc is invalid or already selected
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
 		return document;
 	}
 
@@ -1140,14 +1080,10 @@ setDocument = Sizzle.setDocument = function( node ) {
 	docElem = document.documentElement;
 	documentIsHTML = !isXML( document );
 
-	// Support: IE 9 - 11+, Edge 12 - 18+
+	// Support: IE 9-11, Edge
 	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( preferredDoc != document &&
-		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
+	if ( preferredDoc !== document &&
+		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {
 
 		// Support: IE 11, Edge
 		if ( subWindow.addEventListener ) {
@@ -1159,36 +1095,25 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 	}
 
-	// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
-	// Safari 4 - 5 only, Opera <=11.6 - 12.x only
-	// IE/Edge & older browsers don't support the :scope pseudo-class.
-	// Support: Safari 6.0 only
-	// Safari 6.0 supports :scope but it's an alias of :root there.
-	support.scope = assert( function( el ) {
-		docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
-		return typeof el.querySelectorAll !== "undefined" &&
-			!el.querySelectorAll( ":scope fieldset div" ).length;
-	} );
-
 	/* Attributes
 	---------------------------------------------------------------------- */
 
 	// Support: IE<8
 	// Verify that getAttribute really returns attributes and not properties
 	// (excepting IE8 booleans)
-	support.attributes = assert( function( el ) {
+	support.attributes = assert(function( el ) {
 		el.className = "i";
-		return !el.getAttribute( "className" );
-	} );
+		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.getElementsByTagName = assert(function( el ) {
+		el.appendChild( document.createComment("") );
+		return !el.getElementsByTagName("*").length;
+	});
 
 	// Support: IE<9
 	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
@@ -1197,38 +1122,38 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// 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 ) {
+	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 ) {
+		Expr.filter["ID"] = function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
-				return elem.getAttribute( "id" ) === attrId;
+				return elem.getAttribute("id") === attrId;
 			};
 		};
-		Expr.find[ "ID" ] = function( id, context ) {
+		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 ) {
+		Expr.filter["ID"] =  function( id ) {
 			var attrId = id.replace( runescape, funescape );
 			return function( elem ) {
 				var node = typeof elem.getAttributeNode !== "undefined" &&
-					elem.getAttributeNode( "id" );
+					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 ) {
+		Expr.find["ID"] = function( id, context ) {
 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 				var node, i, elems,
 					elem = context.getElementById( id );
@@ -1236,7 +1161,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 				if ( elem ) {
 
 					// Verify the id attribute
-					node = elem.getAttributeNode( "id" );
+					node = elem.getAttributeNode("id");
 					if ( node && node.value === id ) {
 						return [ elem ];
 					}
@@ -1244,8 +1169,8 @@ setDocument = Sizzle.setDocument = function( node ) {
 					// Fall back on getElementsByName
 					elems = context.getElementsByName( id );
 					i = 0;
-					while ( ( elem = elems[ i++ ] ) ) {
-						node = elem.getAttributeNode( "id" );
+					while ( (elem = elems[i++]) ) {
+						node = elem.getAttributeNode("id");
 						if ( node && node.value === id ) {
 							return [ elem ];
 						}
@@ -1258,7 +1183,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 	}
 
 	// Tag
-	Expr.find[ "TAG" ] = support.getElementsByTagName ?
+	Expr.find["TAG"] = support.getElementsByTagName ?
 		function( tag, context ) {
 			if ( typeof context.getElementsByTagName !== "undefined" ) {
 				return context.getElementsByTagName( tag );
@@ -1273,13 +1198,12 @@ setDocument = Sizzle.setDocument = function( node ) {
 			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++ ] ) ) {
+				while ( (elem = results[i++]) ) {
 					if ( elem.nodeType === 1 ) {
 						tmp.push( elem );
 					}
@@ -1291,7 +1215,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		};
 
 	// Class
-	Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
 		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
 			return context.getElementsByClassName( className );
 		}
@@ -1312,14 +1236,10 @@ setDocument = Sizzle.setDocument = function( node ) {
 	// See https://bugs.jquery.com/ticket/13378
 	rbuggyQSA = [];
 
-	if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
-
+	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
 		// Build QSA regex
 		// Regex strategy adopted from Diego Perini
-		assert( function( el ) {
-
-			var input;
-
+		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,
@@ -1333,98 +1253,78 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// 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 ) {
+			if ( el.querySelectorAll("[msallowcapture^='']").length ) {
 				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
 			}
 
 			// Support: IE8
 			// Boolean attributes and "value" are not treated correctly
-			if ( !el.querySelectorAll( "[selected]" ).length ) {
+			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( "~=" );
-			}
-
-			// Support: IE 11+, Edge 15 - 18+
-			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
-			// Adding a temporary attribute to the document before the selection works
-			// around the issue.
-			// Interestingly, IE 10 & older don't seem to have the issue.
-			input = document.createElement( "input" );
-			input.setAttribute( "name", "" );
-			el.appendChild( input );
-			if ( !el.querySelectorAll( "[name='']" ).length ) {
-				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
-					whitespace + "*(?:''|\"\")" );
+				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" );
+			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( ".#.+[+~]" );
+				rbuggyQSA.push(".#.+[+~]");
 			}
+		});
 
-			// Support: Firefox <=3.6 - 5 only
-			// Old Firefox doesn't throw on a badly-escaped identifier.
-			el.querySelectorAll( "\\\f" );
-			rbuggyQSA.push( "[\\r\\n\\f]" );
-		} );
-
-		assert( function( el ) {
+		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" );
+			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 ) {
+			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 ) {
+			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 ) {
+			if ( el.querySelectorAll(":disabled").length !== 2 ) {
 				rbuggyQSA.push( ":enabled", ":disabled" );
 			}
 
-			// Support: Opera 10 - 11 only
 			// Opera 10-11 does not throw on post-comma invalid pseudos
-			el.querySelectorAll( "*,:x" );
-			rbuggyQSA.push( ",.*:" );
-		} );
+			el.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
 	}
 
-	if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
 		docElem.webkitMatchesSelector ||
 		docElem.mozMatchesSelector ||
 		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector ) ) ) ) {
-
-		assert( function( el ) {
+		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, "*" );
@@ -1433,11 +1333,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 			// 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( "|" ) );
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
 
 	/* Contains
 	---------------------------------------------------------------------- */
@@ -1454,11 +1354,11 @@ setDocument = Sizzle.setDocument = function( node ) {
 				adown.contains ?
 					adown.contains( bup ) :
 					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			) );
+			));
 		} :
 		function( a, b ) {
 			if ( b ) {
-				while ( ( b = b.parentNode ) ) {
+				while ( (b = b.parentNode) ) {
 					if ( b === a ) {
 						return true;
 					}
@@ -1487,11 +1387,7 @@ setDocument = Sizzle.setDocument = function( node ) {
 		}
 
 		// Calculate position if both inputs belong to the same document
-		// Support: IE 11+, Edge 17 - 18+
-		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-		// two documents; shallow comparisons work.
-		// eslint-disable-next-line eqeqeq
-		compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
 			a.compareDocumentPosition( b ) :
 
 			// Otherwise we know they are disconnected
@@ -1499,24 +1395,13 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Disconnected nodes
 		if ( compare & 1 ||
-			( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
 
 			// Choose the first element that is related to our preferred document
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			// eslint-disable-next-line eqeqeq
-			if ( a == document || a.ownerDocument == preferredDoc &&
-				contains( preferredDoc, a ) ) {
+			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
 				return -1;
 			}
-
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			// eslint-disable-next-line eqeqeq
-			if ( b == document || b.ownerDocument == preferredDoc &&
-				contains( preferredDoc, b ) ) {
+			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
 				return 1;
 			}
 
@@ -1529,7 +1414,6 @@ setDocument = Sizzle.setDocument = function( node ) {
 		return compare & 4 ? -1 : 1;
 	} :
 	function( a, b ) {
-
 		// Exit early if the nodes are identical
 		if ( a === b ) {
 			hasDuplicate = true;
@@ -1545,14 +1429,8 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Parentless nodes are either documents or disconnected
 		if ( !aup || !bup ) {
-
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			/* eslint-disable eqeqeq */
-			return a == document ? -1 :
-				b == document ? 1 :
-				/* eslint-enable eqeqeq */
+			return a === document ? -1 :
+				b === document ? 1 :
 				aup ? -1 :
 				bup ? 1 :
 				sortInput ?
@@ -1566,32 +1444,26 @@ setDocument = Sizzle.setDocument = function( node ) {
 
 		// Otherwise we need full lists of their ancestors for comparison
 		cur = a;
-		while ( ( cur = cur.parentNode ) ) {
+		while ( (cur = cur.parentNode) ) {
 			ap.unshift( cur );
 		}
 		cur = b;
-		while ( ( cur = cur.parentNode ) ) {
+		while ( (cur = cur.parentNode) ) {
 			bp.unshift( cur );
 		}
 
 		// Walk down the tree looking for a discrepancy
-		while ( ap[ i ] === bp[ i ] ) {
+		while ( ap[i] === bp[i] ) {
 			i++;
 		}
 
 		return i ?
-
 			// Do a sibling check if the nodes have a common ancestor
-			siblingCheck( ap[ i ], bp[ i ] ) :
+			siblingCheck( ap[i], bp[i] ) :
 
 			// Otherwise nodes in our document sort first
-			// Support: IE 11+, Edge 17 - 18+
-			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-			// two documents; shallow comparisons work.
-			/* eslint-disable eqeqeq */
-			ap[ i ] == preferredDoc ? -1 :
-			bp[ i ] == preferredDoc ? 1 :
-			/* eslint-enable eqeqeq */
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
 			0;
 	};
 
@@ -1603,10 +1475,16 @@ Sizzle.matches = function( expr, elements ) {
 };
 
 Sizzle.matchesSelector = function( elem, expr ) {
-	setDocument( elem );
+	// 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 &&
-		!nonnativeSelectorCache[ expr + " " ] &&
+		!compilerCache[ expr + " " ] &&
 		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
 		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 
@@ -1615,46 +1493,32 @@ Sizzle.matchesSelector = function( 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 ) {
+					// 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 ) {
-			nonnativeSelectorCache( expr, true );
-		}
+		} catch (e) {}
 	}
 
 	return Sizzle( expr, document, null, [ elem ] ).length > 0;
 };
 
 Sizzle.contains = function( context, elem ) {
-
 	// Set document vars if needed
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( ( context.ownerDocument || context ) != document ) {
+	if ( ( context.ownerDocument || context ) !== document ) {
 		setDocument( context );
 	}
 	return contains( context, elem );
 };
 
 Sizzle.attr = function( elem, name ) {
-
 	// Set document vars if needed
-	// Support: IE 11+, Edge 17 - 18+
-	// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-	// two documents; shallow comparisons work.
-	// eslint-disable-next-line eqeqeq
-	if ( ( elem.ownerDocument || elem ) != document ) {
+	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 ) :
@@ -1664,13 +1528,13 @@ Sizzle.attr = function( elem, name ) {
 		val :
 		support.attributes || !documentIsHTML ?
 			elem.getAttribute( name ) :
-			( val = elem.getAttributeNode( name ) ) && val.specified ?
+			(val = elem.getAttributeNode(name)) && val.specified ?
 				val.value :
 				null;
 };
 
 Sizzle.escape = function( sel ) {
-	return ( sel + "" ).replace( rcssescape, fcssescape );
+	return (sel + "").replace( rcssescape, fcssescape );
 };
 
 Sizzle.error = function( msg ) {
@@ -1693,7 +1557,7 @@ Sizzle.uniqueSort = function( results ) {
 	results.sort( sortOrder );
 
 	if ( hasDuplicate ) {
-		while ( ( elem = results[ i++ ] ) ) {
+		while ( (elem = results[i++]) ) {
 			if ( elem === results[ i ] ) {
 				j = duplicates.push( i );
 			}
@@ -1721,21 +1585,17 @@ getText = Sizzle.getText = function( elem ) {
 		nodeType = elem.nodeType;
 
 	if ( !nodeType ) {
-
 		// If no nodeType, this is expected to be an array
-		while ( ( node = elem[ i++ ] ) ) {
-
+		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 );
@@ -1744,7 +1604,6 @@ getText = Sizzle.getText = function( elem ) {
 	} else if ( nodeType === 3 || nodeType === 4 ) {
 		return elem.nodeValue;
 	}
-
 	// Do not include comment or processing instruction nodes
 
 	return ret;
@@ -1772,21 +1631,19 @@ Expr = Sizzle.selectors = {
 
 	preFilter: {
 		"ATTR": function( match ) {
-			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
+			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 );
+			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
 
-			if ( match[ 2 ] === "~=" ) {
-				match[ 3 ] = " " + match[ 3 ] + " ";
+			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)
@@ -1797,25 +1654,22 @@ Expr = Sizzle.selectors = {
 				7 sign of y-component
 				8 y of y-component
 			*/
-			match[ 1 ] = match[ 1 ].toLowerCase();
-
-			if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
+			match[1] = match[1].toLowerCase();
 
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
 				// nth-* requires argument
-				if ( !match[ 3 ] ) {
-					Sizzle.error( match[ 0 ] );
+				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" );
+				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 ] );
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
 			}
 
 			return match;
@@ -1823,28 +1677,26 @@ Expr = Sizzle.selectors = {
 
 		"PSEUDO": function( match ) {
 			var excess,
-				unquoted = !match[ 6 ] && match[ 2 ];
+				unquoted = !match[6] && match[2];
 
-			if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
 				return null;
 			}
 
 			// Accept quoted arguments as-is
-			if ( match[ 3 ] ) {
-				match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
+			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 ) ) &&
-
+				(excess = tokenize( unquoted, true )) &&
 				// advance to the next closing parenthesis
-				( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
+				(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 );
+				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)
@@ -1857,9 +1709,7 @@ Expr = Sizzle.selectors = {
 		"TAG": function( nodeNameSelector ) {
 			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
 			return nodeNameSelector === "*" ?
-				function() {
-					return true;
-				} :
+				function() { return true; } :
 				function( elem ) {
 					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
 				};
@@ -1869,16 +1719,10 @@ Expr = Sizzle.selectors = {
 			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" ) ||
-								""
-							);
-				} );
+				(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 ) {
@@ -1894,8 +1738,6 @@ Expr = Sizzle.selectors = {
 
 				result += "";
 
-				/* eslint-disable max-len */
-
 				return operator === "=" ? result === check :
 					operator === "!=" ? result !== check :
 					operator === "^=" ? check && result.indexOf( check ) === 0 :
@@ -1904,12 +1746,10 @@ Expr = Sizzle.selectors = {
 					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
 					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
 					false;
-				/* eslint-enable max-len */
-
 			};
 		},
 
-		"CHILD": function( type, what, _argument, first, last ) {
+		"CHILD": function( type, what, argument, first, last ) {
 			var simple = type.slice( 0, 3 ) !== "nth",
 				forward = type.slice( -4 ) !== "last",
 				ofType = what === "of-type";
@@ -1921,7 +1761,7 @@ Expr = Sizzle.selectors = {
 					return !!elem.parentNode;
 				} :
 
-				function( elem, _context, xml ) {
+				function( elem, context, xml ) {
 					var cache, uniqueCache, outerCache, node, nodeIndex, start,
 						dir = simple !== forward ? "nextSibling" : "previousSibling",
 						parent = elem.parentNode,
@@ -1935,7 +1775,7 @@ Expr = Sizzle.selectors = {
 						if ( simple ) {
 							while ( dir ) {
 								node = elem;
-								while ( ( node = node[ dir ] ) ) {
+								while ( (node = node[ dir ]) ) {
 									if ( ofType ?
 										node.nodeName.toLowerCase() === name :
 										node.nodeType === 1 ) {
@@ -1943,7 +1783,6 @@ Expr = Sizzle.selectors = {
 										return false;
 									}
 								}
-
 								// Reverse direction for :only-* (if we haven't yet done so)
 								start = dir = type === "only" && !start && "nextSibling";
 							}
@@ -1959,22 +1798,22 @@ Expr = Sizzle.selectors = {
 
 							// ...in a gzip-friendly way
 							node = parent;
-							outerCache = node[ expando ] || ( node[ expando ] = {} );
+							outerCache = node[ expando ] || (node[ expando ] = {});
 
 							// Support: IE <9 only
 							// Defend against cloned attroperties (jQuery gh-1709)
 							uniqueCache = outerCache[ node.uniqueID ] ||
-								( 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 ] ||
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
 
 								// Fallback to seeking `elem` from the start
-								( diff = nodeIndex = 0 ) || start.pop() ) ) {
+								(diff = nodeIndex = 0) || start.pop()) ) {
 
 								// When found, cache indexes on `parent` and break
 								if ( node.nodeType === 1 && ++diff && node === elem ) {
@@ -1984,18 +1823,16 @@ Expr = Sizzle.selectors = {
 							}
 
 						} else {
-
 							// Use previously-cached element index if available
 							if ( useCache ) {
-
 								// ...in a gzip-friendly way
 								node = elem;
-								outerCache = node[ expando ] || ( node[ expando ] = {} );
+								outerCache = node[ expando ] || (node[ expando ] = {});
 
 								// Support: IE <9 only
 								// Defend against cloned attroperties (jQuery gh-1709)
 								uniqueCache = outerCache[ node.uniqueID ] ||
-									( outerCache[ node.uniqueID ] = {} );
+									(outerCache[ node.uniqueID ] = {});
 
 								cache = uniqueCache[ type ] || [];
 								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
@@ -2005,10 +1842,9 @@ Expr = Sizzle.selectors = {
 							// 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() ) ) {
+								while ( (node = ++nodeIndex && node && node[ dir ] ||
+									(diff = nodeIndex = 0) || start.pop()) ) {
 
 									if ( ( ofType ?
 										node.nodeName.toLowerCase() === name :
@@ -2017,13 +1853,12 @@ Expr = Sizzle.selectors = {
 
 										// Cache the index of each encountered element
 										if ( useCache ) {
-											outerCache = node[ expando ] ||
-												( node[ expando ] = {} );
+											outerCache = node[ expando ] || (node[ expando ] = {});
 
 											// Support: IE <9 only
 											// Defend against cloned attroperties (jQuery gh-1709)
 											uniqueCache = outerCache[ node.uniqueID ] ||
-												( outerCache[ node.uniqueID ] = {} );
+												(outerCache[ node.uniqueID ] = {});
 
 											uniqueCache[ type ] = [ dirruns, diff ];
 										}
@@ -2044,7 +1879,6 @@ Expr = Sizzle.selectors = {
 		},
 
 		"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
@@ -2064,15 +1898,15 @@ Expr = Sizzle.selectors = {
 			if ( fn.length > 1 ) {
 				args = [ pseudo, pseudo, "", argument ];
 				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction( function( seed, matches ) {
+					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 ] );
+							idx = indexOf( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
 						}
-					} ) :
+					}) :
 					function( elem ) {
 						return fn( elem, 0, args );
 					};
@@ -2083,10 +1917,8 @@ Expr = Sizzle.selectors = {
 	},
 
 	pseudos: {
-
 		// Potentially complex pseudos
-		"not": markFunction( function( selector ) {
-
+		"not": markFunction(function( selector ) {
 			// Trim the selector passed to compile
 			// to avoid treating leading and trailing
 			// spaces as combinators
@@ -2095,40 +1927,39 @@ Expr = Sizzle.selectors = {
 				matcher = compile( selector.replace( rtrim, "$1" ) );
 
 			return matcher[ expando ] ?
-				markFunction( function( seed, matches, _context, xml ) {
+				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 );
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
 						}
 					}
-				} ) :
-				function( elem, _context, xml ) {
-					input[ 0 ] = elem;
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
 					matcher( input, null, xml, results );
-
 					// Don't keep the element (issue #299)
-					input[ 0 ] = null;
+					input[0] = null;
 					return !results.pop();
 				};
-		} ),
+		}),
 
-		"has": markFunction( function( selector ) {
+		"has": markFunction(function( selector ) {
 			return function( elem ) {
 				return Sizzle( selector, elem ).length > 0;
 			};
-		} ),
+		}),
 
-		"contains": markFunction( function( text ) {
+		"contains": markFunction(function( text ) {
 			text = text.replace( runescape, funescape );
 			return function( elem ) {
-				return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
+				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
@@ -2138,26 +1969,25 @@ Expr = Sizzle.selectors = {
 		// 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 || "" ) ) {
+			if ( !ridentifier.test(lang || "") ) {
 				Sizzle.error( "unsupported lang: " + lang );
 			}
 			lang = lang.replace( runescape, funescape ).toLowerCase();
 			return function( elem ) {
 				var elemLang;
 				do {
-					if ( ( elemLang = documentIsHTML ?
+					if ( (elemLang = documentIsHTML ?
 						elem.lang :
-						elem.getAttribute( "xml:lang" ) || elem.getAttribute( "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 );
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
 				return false;
 			};
-		} ),
+		}),
 
 		// Miscellaneous
 		"target": function( elem ) {
@@ -2170,9 +2000,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"focus": function( elem ) {
-			return elem === document.activeElement &&
-				( !document.hasFocus || document.hasFocus() ) &&
-				!!( elem.type || elem.href || ~elem.tabIndex );
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
 		},
 
 		// Boolean properties
@@ -2180,20 +2008,16 @@ Expr = Sizzle.selectors = {
 		"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 );
+			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 ) {
-				// eslint-disable-next-line no-unused-expressions
 				elem.parentNode.selectedIndex;
 			}
 
@@ -2202,7 +2026,6 @@ Expr = Sizzle.selectors = {
 
 		// 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.)
@@ -2216,7 +2039,7 @@ Expr = Sizzle.selectors = {
 		},
 
 		"parent": function( elem ) {
-			return !Expr.pseudos[ "empty" ]( elem );
+			return !Expr.pseudos["empty"]( elem );
 		},
 
 		// Element/input types
@@ -2240,62 +2063,57 @@ Expr = Sizzle.selectors = {
 
 				// Support: IE<8
 				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
-				( ( attr = elem.getAttribute( "type" ) ) == null ||
-					attr.toLowerCase() === "text" );
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
 		},
 
 		// Position-in-collection
-		"first": createPositionalPseudo( function() {
+		"first": createPositionalPseudo(function() {
 			return [ 0 ];
-		} ),
+		}),
 
-		"last": createPositionalPseudo( function( _matchIndexes, length ) {
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
 			return [ length - 1 ];
-		} ),
+		}),
 
-		"eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
 			return [ argument < 0 ? argument + length : argument ];
-		} ),
+		}),
 
-		"even": createPositionalPseudo( function( matchIndexes, length ) {
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
 			var i = 0;
 			for ( ; i < length; i += 2 ) {
 				matchIndexes.push( i );
 			}
 			return matchIndexes;
-		} ),
+		}),
 
-		"odd": createPositionalPseudo( function( matchIndexes, length ) {
+		"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 > length ?
-					length :
-					argument;
+		"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 ) {
+		"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" ];
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
 
 // Add button/input type pseudos
 for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2326,39 +2144,37 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 	while ( soFar ) {
 
 		// Comma and first run
-		if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
 			if ( match ) {
-
 				// Don't consume trailing commas as valid
-				soFar = soFar.slice( match[ 0 ].length ) || soFar;
+				soFar = soFar.slice( match[0].length ) || soFar;
 			}
-			groups.push( ( tokens = [] ) );
+			groups.push( (tokens = []) );
 		}
 
 		matched = false;
 
 		// Combinators
-		if ( ( match = rcombinators.exec( soFar ) ) ) {
+		if ( (match = rcombinators.exec( soFar )) ) {
 			matched = match.shift();
-			tokens.push( {
+			tokens.push({
 				value: matched,
-
 				// Cast descendant combinators to space
-				type: match[ 0 ].replace( rtrim, " " )
-			} );
+				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 ) ) ) ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
 				matched = match.shift();
-				tokens.push( {
+				tokens.push({
 					value: matched,
 					type: type,
 					matches: match
-				} );
+				});
 				soFar = soFar.slice( matched.length );
 			}
 		}
@@ -2375,7 +2191,6 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 		soFar.length :
 		soFar ?
 			Sizzle.error( selector ) :
-
 			// Cache the tokens
 			tokenCache( selector, groups ).slice( 0 );
 };
@@ -2385,7 +2200,7 @@ function toSelector( tokens ) {
 		len = tokens.length,
 		selector = "";
 	for ( ; i < len; i++ ) {
-		selector += tokens[ i ].value;
+		selector += tokens[i].value;
 	}
 	return selector;
 }
@@ -2398,10 +2213,9 @@ function addCombinator( matcher, combinator, base ) {
 		doneName = done++;
 
 	return combinator.first ?
-
 		// Check against closest ancestor/preceding element
 		function( elem, context, xml ) {
-			while ( ( elem = elem[ dir ] ) ) {
+			while ( (elem = elem[ dir ]) ) {
 				if ( elem.nodeType === 1 || checkNonElements ) {
 					return matcher( elem, context, xml );
 				}
@@ -2416,7 +2230,7 @@ function addCombinator( matcher, combinator, base ) {
 
 			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
 			if ( xml ) {
-				while ( ( elem = elem[ dir ] ) ) {
+				while ( (elem = elem[ dir ]) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
 						if ( matcher( elem, context, xml ) ) {
 							return true;
@@ -2424,29 +2238,27 @@ function addCombinator( matcher, combinator, base ) {
 					}
 				}
 			} else {
-				while ( ( elem = elem[ dir ] ) ) {
+				while ( (elem = elem[ dir ]) ) {
 					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
 
 						// Support: IE <9 only
 						// Defend against cloned attroperties (jQuery gh-1709)
-						uniqueCache = outerCache[ elem.uniqueID ] ||
-							( outerCache[ elem.uniqueID ] = {} );
+						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
 
 						if ( skip && skip === elem.nodeName.toLowerCase() ) {
 							elem = elem[ dir ] || elem;
-						} else if ( ( oldCache = uniqueCache[ key ] ) &&
+						} 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 ] );
+							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 ) ) ) {
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
 								return true;
 							}
 						}
@@ -2462,20 +2274,20 @@ function elementMatcher( matchers ) {
 		function( elem, context, xml ) {
 			var i = matchers.length;
 			while ( i-- ) {
-				if ( !matchers[ i ]( elem, context, xml ) ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
 					return false;
 				}
 			}
 			return true;
 		} :
-		matchers[ 0 ];
+		matchers[0];
 }
 
 function multipleContexts( selector, contexts, results ) {
 	var i = 0,
 		len = contexts.length;
 	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[ i ], results );
+		Sizzle( selector, contexts[i], results );
 	}
 	return results;
 }
@@ -2488,7 +2300,7 @@ function condense( unmatched, map, filter, context, xml ) {
 		mapped = map != null;
 
 	for ( ; i < len; i++ ) {
-		if ( ( elem = unmatched[ i ] ) ) {
+		if ( (elem = unmatched[i]) ) {
 			if ( !filter || filter( elem, context, xml ) ) {
 				newUnmatched.push( elem );
 				if ( mapped ) {
@@ -2508,18 +2320,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 	if ( postFinder && !postFinder[ expando ] ) {
 		postFinder = setMatcher( postFinder, postSelector );
 	}
-	return markFunction( function( seed, results, context, xml ) {
+	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,
-				[]
-			),
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
 
 			// Prefilter to get matcher input, preserving a map for seed-results synchronization
 			matcherIn = preFilter && ( seed || !selector ) ?
@@ -2527,7 +2335,6 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				elems,
 
 			matcherOut = matcher ?
-
 				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
 				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 
@@ -2551,8 +2358,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 			// 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 ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
 				}
 			}
 		}
@@ -2560,27 +2367,25 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 		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 ] ) ) {
-
+						if ( (elem = matcherOut[i]) ) {
 							// Restore matcherIn since elem is not yet a final match
-							temp.push( ( matcherIn[ i ] = elem ) );
+							temp.push( (matcherIn[i] = elem) );
 						}
 					}
-					postFinder( null, ( matcherOut = [] ), temp, xml );
+					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 ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
 
-						seed[ temp ] = !( results[ temp ] = elem );
+						seed[temp] = !(results[temp] = elem);
 					}
 				}
 			}
@@ -2598,14 +2403,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
 				push.apply( results, matcherOut );
 			}
 		}
-	} );
+	});
 }
 
 function matcherFromTokens( tokens ) {
 	var checkContext, matcher, j,
 		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[ 0 ].type ],
-		implicitRelative = leadingRelative || Expr.relative[ " " ],
+		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)
@@ -2617,43 +2422,38 @@ function matcherFromTokens( tokens ) {
 		}, implicitRelative, true ),
 		matchers = [ function( elem, context, xml ) {
 			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				( checkContext = context ).nodeType ?
+				(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 ) ];
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
 		} else {
-			matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
+			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 ] ) {
+					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 === " " ? "*" : "" } )
+						// 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 && matcherFromTokens( (tokens = tokens.slice( j )) ),
 					j < len && toSelector( tokens )
 				);
 			}
@@ -2674,40 +2474,28 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 				unmatched = seed && [],
 				setMatched = [],
 				contextBackup = outermostContext,
-
 				// We must always have either seed elements or outermost context
-				elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
-
+				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 ),
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
 				len = elems.length;
 
 			if ( outermost ) {
-
-				// Support: IE 11+, Edge 17 - 18+
-				// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-				// two documents; shallow comparisons work.
-				// eslint-disable-next-line eqeqeq
-				outermostContext = context == document || context || 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++ ) {
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
 				if ( byElement && elem ) {
 					j = 0;
-
-					// Support: IE 11+, Edge 17 - 18+
-					// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
-					// two documents; shallow comparisons work.
-					// eslint-disable-next-line eqeqeq
-					if ( !context && elem.ownerDocument != document ) {
+					if ( !context && elem.ownerDocument !== document ) {
 						setDocument( elem );
 						xml = !documentIsHTML;
 					}
-					while ( ( matcher = elementMatchers[ j++ ] ) ) {
-						if ( matcher( elem, context || document, xml ) ) {
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context || document, xml) ) {
 							results.push( elem );
 							break;
 						}
@@ -2719,9 +2507,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 
 				// Track unmatched elements for set filters
 				if ( bySet ) {
-
 					// They will have gone through all possible matchers
-					if ( ( elem = !matcher && elem ) ) {
+					if ( (elem = !matcher && elem) ) {
 						matchedCount--;
 					}
 
@@ -2745,17 +2532,16 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 			// numerically zero.
 			if ( bySet && i !== matchedCount ) {
 				j = 0;
-				while ( ( matcher = setMatchers[ j++ ] ) ) {
+				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 );
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
 							}
 						}
 					}
@@ -2796,14 +2582,13 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		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 ] );
+			cached = matcherFromTokens( match[i] );
 			if ( cached[ expando ] ) {
 				setMatchers.push( cached );
 			} else {
@@ -2812,10 +2597,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 		}
 
 		// Cache the compiled function
-		cached = compilerCache(
-			selector,
-			matcherFromGroupMatchers( elementMatchers, setMatchers )
-		);
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
 
 		// Save selector and tokenization
 		cached.selector = selector;
@@ -2835,7 +2617,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 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 ) );
+		match = !seed && tokenize( (selector = compiled.selector || selector) );
 
 	results = results || [];
 
@@ -2844,12 +2626,11 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 	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 ] ) {
+		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 ];
+			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
 			if ( !context ) {
 				return results;
 
@@ -2862,22 +2643,20 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 		}
 
 		// Fetch a seed set for right-to-left matching
-		i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
+		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
 		while ( i-- ) {
-			token = tokens[ i ];
+			token = tokens[i];
 
 			// Abort if we hit a combinator
-			if ( Expr.relative[ ( type = token.type ) ] ) {
+			if ( Expr.relative[ (type = token.type) ] ) {
 				break;
 			}
-			if ( ( find = Expr.find[ type ] ) ) {
-
+			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 = 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 );
@@ -2908,7 +2687,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
 // One-time assignments
 
 // Sort stability
-support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
 
 // Support: Chrome 14-35+
 // Always assume duplicates if they aren't passed to the comparison function
@@ -2919,59 +2698,58 @@ 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 ) {
-
+support.sortDetached = assert(function( el ) {
 	// Should return 1, but returns 4 (following)
-	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
-} );
+	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 ) {
+if ( !assert(function( el ) {
 	el.innerHTML = "<a href='#'></a>";
-	return el.firstChild.getAttribute( "href" ) === "#";
-} ) ) {
+	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 ) {
+if ( !support.attributes || !assert(function( el ) {
 	el.innerHTML = "<input/>";
 	el.firstChild.setAttribute( "value", "" );
 	return el.firstChild.getAttribute( "value" ) === "";
-} ) ) {
-	addHandle( "value", function( elem, _name, isXML ) {
+}) ) {
+	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;
-} ) ) {
+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 = elem.getAttributeNode( name )) && val.specified ?
 					val.value :
-					null;
+				null;
 		}
-	} );
+	});
 }
 
 return Sizzle;
 
-} )( window );
+})( window );
 
 
 
@@ -3340,7 +3118,7 @@ jQuery.each( {
 	parents: function( elem ) {
 		return dir( elem, "parentNode" );
 	},
-	parentsUntil: function( elem, _i, until ) {
+	parentsUntil: function( elem, i, until ) {
 		return dir( elem, "parentNode", until );
 	},
 	next: function( elem ) {
@@ -3355,10 +3133,10 @@ jQuery.each( {
 	prevAll: function( elem ) {
 		return dir( elem, "previousSibling" );
 	},
-	nextUntil: function( elem, _i, until ) {
+	nextUntil: function( elem, i, until ) {
 		return dir( elem, "nextSibling", until );
 	},
-	prevUntil: function( elem, _i, until ) {
+	prevUntil: function( elem, i, until ) {
 		return dir( elem, "previousSibling", until );
 	},
 	siblings: function( elem ) {
@@ -3368,24 +3146,18 @@ jQuery.each( {
 		return siblings( elem.firstChild );
 	},
 	contents: function( elem ) {
-		if ( elem.contentDocument != null &&
-
-			// Support: IE 11+
-			// <object> elements with no `data` attribute has an object
-			// `contentDocument` with a `null` prototype.
-			getProto( elem.contentDocument ) ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
 
-			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;
+        }
 
-		// 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 );
+        return jQuery.merge( [], elem.childNodes );
 	}
 }, function( name, fn ) {
 	jQuery.fn[ name ] = function( until, selector ) {
@@ -3717,7 +3489,7 @@ jQuery.extend( {
 					var fns = arguments;
 
 					return jQuery.Deferred( function( newDefer ) {
-						jQuery.each( tuples, function( _i, tuple ) {
+						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 ] ];
@@ -4170,7 +3942,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 			// ...except when executing function values
 			} else {
 				bulk = fn;
-				fn = function( elem, _key, value ) {
+				fn = function( elem, key, value ) {
 					return bulk.call( jQuery( elem ), value );
 				};
 			}
@@ -4205,7 +3977,7 @@ var rmsPrefix = /^-ms-/,
 	rdashAlpha = /-([a-z])/g;
 
 // Used by camelCase as callback to replace()
-function fcamelCase( _all, letter ) {
+function fcamelCase( all, letter ) {
 	return letter.toUpperCase();
 }
 
@@ -4694,26 +4466,6 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
 
 var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
 
-var documentElement = document.documentElement;
-
-
-
-	var isAttached = function( elem ) {
-			return jQuery.contains( elem.ownerDocument, elem );
-		},
-		composed = { composed: true };
-
-	// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
-	// Check attachment across shadow DOM boundaries when possible (gh-3504)
-	// Support: iOS 10.0-10.2 only
-	// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
-	// leading to errors. We need to check for `getRootNode`.
-	if ( documentElement.getRootNode ) {
-		isAttached = function( elem ) {
-			return jQuery.contains( elem.ownerDocument, elem ) ||
-				elem.getRootNode( composed ) === elem.ownerDocument;
-		};
-	}
 var isHiddenWithinTree = function( elem, el ) {
 
 		// isHiddenWithinTree might be called from jQuery#filter function;
@@ -4728,11 +4480,32 @@ var isHiddenWithinTree = function( elem, el ) {
 			// Support: Firefox <=43 - 45
 			// Disconnected elements can have computed display: none, so first confirm that elem is
 			// in the document.
-			isAttached( elem ) &&
+			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 ) {
@@ -4749,8 +4522,7 @@ function adjustCSS( elem, prop, valueParts, tween ) {
 		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 
 		// Starting value computation is required for potential unit mismatches
-		initialInUnit = elem.nodeType &&
-			( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 			rcssNum.exec( jQuery.css( elem, prop ) );
 
 	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@@ -4897,47 +4669,18 @@ jQuery.fn.extend( {
 } );
 var rcheckableType = ( /^(?:checkbox|radio)$/i );
 
-var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
 
 var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
 
 
 
-( 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;
-
-	// Support: IE <=9 only
-	// IE <=9 replaces <option> tags with their contents when inserted outside of
-	// the select element.
-	div.innerHTML = "<option></option>";
-	support.option = !!div.lastChild;
-} )();
-
-
 // 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.
@@ -4949,14 +4692,12 @@ var wrapMap = {
 	_default: [ 0, "", "" ]
 };
 
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
-// Support: IE <=9 only
-if ( !support.option ) {
-	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
-}
-
 
 function getAll( context, tag ) {
 
@@ -5000,7 +4741,7 @@ function setGlobalEval( elems, refElements ) {
 var rhtml = /<|&#?\w+;/;
 
 function buildFragment( elems, context, scripts, selection, ignored ) {
-	var elem, tmp, tag, wrap, attached, j,
+	var elem, tmp, tag, wrap, contains, j,
 		fragment = context.createDocumentFragment(),
 		nodes = [],
 		i = 0,
@@ -5064,13 +4805,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 			continue;
 		}
 
-		attached = isAttached( elem );
+		contains = jQuery.contains( elem.ownerDocument, elem );
 
 		// Append to fragment
 		tmp = getAll( fragment.appendChild( elem ), "script" );
 
 		// Preserve script evaluation history
-		if ( attached ) {
+		if ( contains ) {
 			setGlobalEval( tmp );
 		}
 
@@ -5089,6 +4830,34 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
 }
 
 
+( 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/,
@@ -5102,19 +4871,8 @@ function returnFalse() {
 	return false;
 }
 
-// Support: IE <=9 - 11+
-// focus() and blur() are asynchronous, except when they are no-op.
-// So expect focus to be synchronous when the element is already active,
-// and blur to be synchronous when the element is not already active.
-// (focus and blur are always synchronous in other supported browsers,
-// this just defines when we can count on it).
-function expectSync( elem, type ) {
-	return ( elem === safeActiveElement() ) === ( type === "focus" );
-}
-
 // Support: IE <=9 only
-// Accessing document.activeElement can throw unexpectedly
-// https://bugs.jquery.com/ticket/13393
+// See #13393 for more info
 function safeActiveElement() {
 	try {
 		return document.activeElement;
@@ -5197,8 +4955,8 @@ jQuery.event = {
 			special, handlers, type, namespaces, origType,
 			elemData = dataPriv.get( elem );
 
-		// Only attach events to objects that accept data
-		if ( !acceptData( elem ) ) {
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
 			return;
 		}
 
@@ -5222,7 +4980,7 @@ jQuery.event = {
 
 		// Init the element's event structure and main handler, if this is the first
 		if ( !( events = elemData.events ) ) {
-			events = elemData.events = Object.create( null );
+			events = elemData.events = {};
 		}
 		if ( !( eventHandle = elemData.handle ) ) {
 			eventHandle = elemData.handle = function( e ) {
@@ -5380,15 +5138,12 @@ jQuery.event = {
 
 	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 ),
-
-			// Make a writable jQuery.Event from the native event object
-			event = jQuery.event.fix( nativeEvent ),
-
-			handlers = (
-					dataPriv.get( this, "events" ) || Object.create( null )
-				)[ event.type ] || [],
+			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
@@ -5417,10 +5172,9 @@ jQuery.event = {
 			while ( ( handleObj = matched.handlers[ j++ ] ) &&
 				!event.isImmediatePropagationStopped() ) {
 
-				// If the event is namespaced, then each handler is only invoked if it is
-				// specially universal or its namespaces are a superset of the event's.
-				if ( !event.rnamespace || handleObj.namespace === false ||
-					event.rnamespace.test( handleObj.namespace ) ) {
+				// 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;
@@ -5544,51 +5298,39 @@ jQuery.event = {
 			// Prevent triggered image.load events from bubbling to window.load
 			noBubble: true
 		},
-		click: {
+		focus: {
 
-			// Utilize native event to ensure correct state for checkable inputs
-			setup: function( data ) {
-
-				// For mutual compressibility with _default, replace `this` access with a local var.
-				// `|| data` is dead code meant only to preserve the variable through minification.
-				var el = this || data;
-
-				// Claim the first handler
-				if ( rcheckableType.test( el.type ) &&
-					el.click && nodeName( el, "input" ) ) {
-
-					// dataPriv.set( el, "click", ... )
-					leverageNative( el, "click", returnTrue );
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					this.focus();
+					return false;
 				}
-
-				// Return false to allow normal processing in the caller
-				return false;
 			},
-			trigger: function( data ) {
-
-				// For mutual compressibility with _default, replace `this` access with a local var.
-				// `|| data` is dead code meant only to preserve the variable through minification.
-				var el = this || data;
-
-				// Force setup before triggering a click
-				if ( rcheckableType.test( el.type ) &&
-					el.click && nodeName( el, "input" ) ) {
-
-					leverageNative( el, "click" );
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
 				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
 
-				// Return non-false to allow normal event-path propagation
-				return true;
+			// 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, suppress native .click() on links
-			// Also prevent it if we're currently inside a leveraged native-event stack
+			// For cross-browser consistency, don't fire native .click() on links
 			_default: function( event ) {
-				var target = event.target;
-				return rcheckableType.test( target.type ) &&
-					target.click && nodeName( target, "input" ) &&
-					dataPriv.get( target, "click" ) ||
-					nodeName( target, "a" );
+				return nodeName( event.target, "a" );
 			}
 		},
 
@@ -5605,93 +5347,6 @@ jQuery.event = {
 	}
 };
 
-// Ensure the presence of an event listener that handles manually-triggered
-// synthetic events by interrupting progress until reinvoked in response to
-// *native* events that it fires directly, ensuring that state changes have
-// already occurred before other listeners are invoked.
-function leverageNative( el, type, expectSync ) {
-
-	// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
-	if ( !expectSync ) {
-		if ( dataPriv.get( el, type ) === undefined ) {
-			jQuery.event.add( el, type, returnTrue );
-		}
-		return;
-	}
-
-	// Register the controller as a special universal handler for all event namespaces
-	dataPriv.set( el, type, false );
-	jQuery.event.add( el, type, {
-		namespace: false,
-		handler: function( event ) {
-			var notAsync, result,
-				saved = dataPriv.get( this, type );
-
-			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
-
-				// Interrupt processing of the outer synthetic .trigger()ed event
-				// Saved data should be false in such cases, but might be a leftover capture object
-				// from an async native handler (gh-4350)
-				if ( !saved.length ) {
-
-					// Store arguments for use when handling the inner native event
-					// There will always be at least one argument (an event object), so this array
-					// will not be confused with a leftover capture object.
-					saved = slice.call( arguments );
-					dataPriv.set( this, type, saved );
-
-					// Trigger the native event and capture its result
-					// Support: IE <=9 - 11+
-					// focus() and blur() are asynchronous
-					notAsync = expectSync( this, type );
-					this[ type ]();
-					result = dataPriv.get( this, type );
-					if ( saved !== result || notAsync ) {
-						dataPriv.set( this, type, false );
-					} else {
-						result = {};
-					}
-					if ( saved !== result ) {
-
-						// Cancel the outer synthetic event
-						event.stopImmediatePropagation();
-						event.preventDefault();
-						return result.value;
-					}
-
-				// If this is an inner synthetic event for an event with a bubbling surrogate
-				// (focus or blur), assume that the surrogate already propagated from triggering the
-				// native event and prevent that from happening again here.
-				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
-				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
-				// less bad than duplication.
-				} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
-					event.stopPropagation();
-				}
-
-			// If this is a native event triggered above, everything is now in order
-			// Fire an inner synthetic event with the original arguments
-			} else if ( saved.length ) {
-
-				// ...and capture the result
-				dataPriv.set( this, type, {
-					value: jQuery.event.trigger(
-
-						// Support: IE <=9 - 11+
-						// Extend with the prototype to reset the above stopImmediatePropagation()
-						jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
-						saved.slice( 1 ),
-						this
-					)
-				} );
-
-				// Abort handling of the native event
-				event.stopImmediatePropagation();
-			}
-		}
-	} );
-}
-
 jQuery.removeEvent = function( elem, type, handle ) {
 
 	// This "if" is needed for plain objects
@@ -5804,7 +5459,6 @@ jQuery.each( {
 	shiftKey: true,
 	view: true,
 	"char": true,
-	code: true,
 	charCode: true,
 	key: true,
 	keyCode: true,
@@ -5851,33 +5505,6 @@ jQuery.each( {
 	}
 }, jQuery.event.addProp );
 
-jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
-	jQuery.event.special[ type ] = {
-
-		// Utilize native event if possible so blur/focus sequence is correct
-		setup: function() {
-
-			// Claim the first handler
-			// dataPriv.set( this, "focus", ... )
-			// dataPriv.set( this, "blur", ... )
-			leverageNative( this, type, expectSync );
-
-			// Return false to allow normal processing in the caller
-			return false;
-		},
-		trigger: function() {
-
-			// Force setup before trigger
-			leverageNative( this, type );
-
-			// Return non-false to allow normal event-path propagation
-			return true;
-		},
-
-		delegateType: delegateType
-	};
-} );
-
 // 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
@@ -5963,6 +5590,13 @@ jQuery.fn.extend( {
 
 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/
@@ -5999,7 +5633,7 @@ function restoreScript( elem ) {
 }
 
 function cloneCopyEvent( src, dest ) {
-	var i, l, type, pdataOld, udataOld, udataCur, events;
+	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
 
 	if ( dest.nodeType !== 1 ) {
 		return;
@@ -6007,11 +5641,13 @@ function cloneCopyEvent( src, dest ) {
 
 	// 1. Copy private data: events, handlers, etc.
 	if ( dataPriv.hasData( src ) ) {
-		pdataOld = dataPriv.get( src );
+		pdataOld = dataPriv.access( src );
+		pdataCur = dataPriv.set( dest, pdataOld );
 		events = pdataOld.events;
 
 		if ( events ) {
-			dataPriv.remove( dest, "handle events" );
+			delete pdataCur.handle;
+			pdataCur.events = {};
 
 			for ( type in events ) {
 				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
@@ -6047,7 +5683,7 @@ function fixInput( src, dest ) {
 function domManip( collection, args, callback, ignored ) {
 
 	// Flatten any nested arrays
-	args = flat( args );
+	args = concat.apply( [], args );
 
 	var fragment, first, scripts, hasScripts, node, doc,
 		i = 0,
@@ -6119,13 +5755,11 @@ function domManip( collection, args, callback, ignored ) {
 						if ( node.src && ( node.type || "" ).toLowerCase()  !== "module" ) {
 
 							// Optional AJAX dependency, but won't run scripts if not present
-							if ( jQuery._evalUrl && !node.noModule ) {
-								jQuery._evalUrl( node.src, {
-									nonce: node.nonce || node.getAttribute( "nonce" )
-								}, doc );
+							if ( jQuery._evalUrl ) {
+								jQuery._evalUrl( node.src );
 							}
 						} else {
-							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
+							DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
 						}
 					}
 				}
@@ -6147,7 +5781,7 @@ function remove( elem, selector, keepData ) {
 		}
 
 		if ( node.parentNode ) {
-			if ( keepData && isAttached( node ) ) {
+			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
 				setGlobalEval( getAll( node, "script" ) );
 			}
 			node.parentNode.removeChild( node );
@@ -6159,13 +5793,13 @@ function remove( elem, selector, keepData ) {
 
 jQuery.extend( {
 	htmlPrefilter: function( html ) {
-		return html;
+		return html.replace( rxhtmlTag, "<$1></$2>" );
 	},
 
 	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
 		var i, l, srcElements, destElements,
 			clone = elem.cloneNode( true ),
-			inPage = isAttached( elem );
+			inPage = jQuery.contains( elem.ownerDocument, elem );
 
 		// Fix IE cloning issues
 		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@@ -6421,27 +6055,6 @@ var getStyles = function( elem ) {
 		return view.getComputedStyle( elem );
 	};
 
-var swap = function( elem, options, callback ) {
-	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.call( elem );
-
-	// Revert the old values
-	for ( name in options ) {
-		elem.style[ name ] = old[ name ];
-	}
-
-	return ret;
-};
-
-
 var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 
 
@@ -6482,10 +6095,8 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 
 		// Support: IE 9 only
 		// Detect overflow:scroll screwiness (gh-3699)
-		// Support: Chrome <=64
-		// Don't get tricked when zoom affects offsetWidth (gh-4029)
 		div.style.position = "absolute";
-		scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
+		scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
 
 		documentElement.removeChild( container );
 
@@ -6499,7 +6110,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 	}
 
 	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
-		reliableTrDimensionsVal, reliableMarginLeftVal,
+		reliableMarginLeftVal,
 		container = document.createElement( "div" ),
 		div = document.createElement( "div" );
 
@@ -6534,35 +6145,6 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
 		scrollboxSize: function() {
 			computeStyleTests();
 			return scrollboxSizeVal;
-		},
-
-		// Support: IE 9 - 11+, Edge 15 - 18+
-		// IE/Edge misreport `getComputedStyle` of table rows with width/height
-		// set in CSS while `offset*` properties report correct values.
-		// Behavior in IE 9 is more subtle than in newer versions & it passes
-		// some versions of this test; make sure not to make it pass there!
-		reliableTrDimensions: function() {
-			var table, tr, trChild, trStyle;
-			if ( reliableTrDimensionsVal == null ) {
-				table = document.createElement( "table" );
-				tr = document.createElement( "tr" );
-				trChild = document.createElement( "div" );
-
-				table.style.cssText = "position:absolute;left:-11111px";
-				tr.style.height = "1px";
-				trChild.style.height = "9px";
-
-				documentElement
-					.appendChild( table )
-					.appendChild( tr )
-					.appendChild( trChild );
-
-				trStyle = window.getComputedStyle( tr );
-				reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;
-
-				documentElement.removeChild( table );
-			}
-			return reliableTrDimensionsVal;
 		}
 	} );
 } )();
@@ -6585,7 +6167,7 @@ function curCSS( elem, name, computed ) {
 	if ( computed ) {
 		ret = computed.getPropertyValue( name ) || computed[ name ];
 
-		if ( ret === "" && !isAttached( elem ) ) {
+		if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
 			ret = jQuery.style( elem, name );
 		}
 
@@ -6641,13 +6223,30 @@ function addGetHookIf( conditionFn, hookFn ) {
 }
 
 
-var cssPrefixes = [ "Webkit", "Moz", "ms" ],
-	emptyStyle = document.createElement( "div" ).style,
-	vendorProps = {};
+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 vendor-prefixed property or undefined
+// 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;
@@ -6660,34 +6259,17 @@ function vendorPropName( name ) {
 	}
 }
 
-// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
 function finalPropName( name ) {
-	var final = jQuery.cssProps[ name ] || vendorProps[ name ];
-
-	if ( final ) {
-		return final;
+	var ret = jQuery.cssProps[ name ];
+	if ( !ret ) {
+		ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
 	}
-	if ( name in emptyStyle ) {
-		return name;
-	}
-	return vendorProps[ name ] = vendorPropName( name ) || name;
+	return ret;
 }
 
-
-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"
-	};
-
-function setPositiveNumber( _elem, value, subtract ) {
+function setPositiveNumber( elem, value, subtract ) {
 
 	// Any relative (+/-) values have already been
 	// normalized at this point
@@ -6758,10 +6340,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
 			delta -
 			extra -
 			0.5
-
-		// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
-		// Use an explicit zero to avoid NaN (gh-3964)
-		) ) || 0;
+		) );
 	}
 
 	return delta;
@@ -6771,16 +6350,9 @@ function getWidthOrHeight( elem, dimension, extra ) {
 
 	// Start with computed style
 	var styles = getStyles( elem ),
-
-		// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
-		// Fake content-box until we know it's needed to know the true value.
-		boxSizingNeeded = !support.boxSizingReliable() || extra,
-		isBorderBox = boxSizingNeeded &&
-			jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-		valueIsBorderBox = isBorderBox,
-
 		val = curCSS( elem, dimension, styles ),
-		offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
+		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.
@@ -6791,38 +6363,22 @@ function getWidthOrHeight( elem, dimension, extra ) {
 		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 ] );
 
-	// Support: IE 9 - 11 only
-	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
-	// In those cases, the computed value can be trusted to be border-box.
-	if ( ( !support.boxSizingReliable() && isBorderBox ||
-
-		// Support: IE 10 - 11+, Edge 15 - 18+
-		// IE/Edge misreport `getComputedStyle` of table rows with width/height
-		// set in CSS while `offset*` properties report correct values.
-		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
-		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
-
-		// Fall back to offsetWidth/offsetHeight when value is "auto"
-		// This happens for inline elements with no explicit setting (gh-3571)
-		val === "auto" ||
-
-		// Support: Android <=4.1 - 4.3 only
-		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
-		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
+	// 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" ) {
 
-		// Make sure the element is visible & connected
-		elem.getClientRects().length ) {
+		val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
 
-		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
-		// Where available, offsetWidth/offsetHeight approximate border box dimensions.
-		// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
-		// retrieved value as a content box dimension.
-		valueIsBorderBox = offsetProp in elem;
-		if ( valueIsBorderBox ) {
-			val = elem[ offsetProp ];
-		}
+		// offsetWidth/offsetHeight provide border-box values
+		valueIsBorderBox = true;
 	}
 
 	// Normalize "" and auto
@@ -6868,13 +6424,6 @@ jQuery.extend( {
 		"flexGrow": true,
 		"flexShrink": true,
 		"fontWeight": true,
-		"gridArea": true,
-		"gridColumn": true,
-		"gridColumnEnd": true,
-		"gridColumnStart": true,
-		"gridRow": true,
-		"gridRowEnd": true,
-		"gridRowStart": true,
 		"lineHeight": true,
 		"opacity": true,
 		"order": true,
@@ -6930,9 +6479,7 @@ jQuery.extend( {
 			}
 
 			// If a number was passed in, add the unit (except for certain CSS properties)
-			// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
-			// "px" to a few hardcoded values.
-			if ( type === "number" && !isCustomProp ) {
+			if ( type === "number" ) {
 				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
 			}
 
@@ -7006,7 +6553,7 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "height", "width" ], function( _i, dimension ) {
+jQuery.each( [ "height", "width" ], function( i, dimension ) {
 	jQuery.cssHooks[ dimension ] = {
 		get: function( elem, computed, extra ) {
 			if ( computed ) {
@@ -7032,29 +6579,18 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
 		set: function( elem, value, extra ) {
 			var matches,
 				styles = getStyles( elem ),
-
-				// Only read styles.position if the test has a chance to fail
-				// to avoid forcing a reflow.
-				scrollboxSizeBuggy = !support.scrollboxSize() &&
-					styles.position === "absolute",
-
-				// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
-				boxSizingNeeded = scrollboxSizeBuggy || extra,
-				isBorderBox = boxSizingNeeded &&
-					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-				subtract = extra ?
-					boxModelAdjustment(
-						elem,
-						dimension,
-						extra,
-						isBorderBox,
-						styles
-					) :
-					0;
+				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 && scrollboxSizeBuggy ) {
+			if ( isBorderBox && support.scrollboxSize() === styles.position ) {
 				subtract -= Math.ceil(
 					elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
 					parseFloat( styles[ dimension ] ) -
@@ -7222,9 +6758,9 @@ Tween.propHooks = {
 			// 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 && (
-					jQuery.cssHooks[ tween.prop ] ||
-					tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
+			} 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;
@@ -7779,7 +7315,7 @@ jQuery.fn.extend( {
 			clearQueue = type;
 			type = undefined;
 		}
-		if ( clearQueue ) {
+		if ( clearQueue && type !== false ) {
 			this.queue( type || "fx", [] );
 		}
 
@@ -7862,7 +7398,7 @@ jQuery.fn.extend( {
 	}
 } );
 
-jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
+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" ?
@@ -8083,7 +7619,7 @@ boolHook = {
 	}
 };
 
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, 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 ) {
@@ -8707,9 +8243,7 @@ jQuery.extend( jQuery.event, {
 				special.bindType || type;
 
 			// jQuery handler
-			handle = (
-					dataPriv.get( cur, "events" ) || Object.create( null )
-				)[ event.type ] &&
+			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
 				dataPriv.get( cur, "handle" );
 			if ( handle ) {
 				handle.apply( cur, data );
@@ -8820,10 +8354,7 @@ if ( !support.focusin ) {
 
 		jQuery.event.special[ fix ] = {
 			setup: function() {
-
-				// Handle: regular nodes (via `this.ownerDocument`), window
-				// (via `this.document`) & document (via `this`).
-				var doc = this.ownerDocument || this.document || this,
+				var doc = this.ownerDocument || this,
 					attaches = dataPriv.access( doc, fix );
 
 				if ( !attaches ) {
@@ -8832,7 +8363,7 @@ if ( !support.focusin ) {
 				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 			},
 			teardown: function() {
-				var doc = this.ownerDocument || this.document || this,
+				var doc = this.ownerDocument || this,
 					attaches = dataPriv.access( doc, fix ) - 1;
 
 				if ( !attaches ) {
@@ -8848,7 +8379,7 @@ if ( !support.focusin ) {
 }
 var location = window.location;
 
-var nonce = { guid: Date.now() };
+var nonce = Date.now();
 
 var rquery = ( /\?/ );
 
@@ -8936,10 +8467,6 @@ jQuery.param = function( a, traditional ) {
 				encodeURIComponent( value == null ? "" : value );
 		};
 
-	if ( a == null ) {
-		return "";
-	}
-
 	// If an array was passed in, assume that it is an array of form elements.
 	if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
 
@@ -8980,7 +8507,7 @@ jQuery.fn.extend( {
 				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 				( this.checked || !rcheckableType.test( type ) );
 		} )
-		.map( function( _i, elem ) {
+		.map( function( i, elem ) {
 			var val = jQuery( this ).val();
 
 			if ( val == null ) {
@@ -9442,14 +8969,12 @@ jQuery.extend( {
 						if ( !responseHeaders ) {
 							responseHeaders = {};
 							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
-								responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
-									( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
-										.concat( match[ 2 ] );
+								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
 							}
 						}
-						match = responseHeaders[ key.toLowerCase() + " " ];
+						match = responseHeaders[ key.toLowerCase() ];
 					}
-					return match == null ? null : match.join( ", " );
+					return match == null ? null : match;
 				},
 
 				// Raw string
@@ -9593,8 +9118,7 @@ jQuery.extend( {
 			// Add or update anti-cache param if needed
 			if ( s.cache === false ) {
 				cacheURL = cacheURL.replace( rantiCache, "$1" );
-				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
-					uncached;
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
 			}
 
 			// Put hash and anti-cache on the URL that will be requested (gh-1732)
@@ -9727,11 +9251,6 @@ jQuery.extend( {
 				response = ajaxHandleResponses( s, jqXHR, responses );
 			}
 
-			// Use a noop converter for missing script
-			if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
-				s.converters[ "text script" ] = function() {};
-			}
-
 			// Convert no matter what (that way responseXXX fields are always set)
 			response = ajaxConvert( s, response, jqXHR, isSuccess );
 
@@ -9822,7 +9341,7 @@ jQuery.extend( {
 	}
 } );
 
-jQuery.each( [ "get", "post" ], function( _i, method ) {
+jQuery.each( [ "get", "post" ], function( i, method ) {
 	jQuery[ method ] = function( url, data, callback, type ) {
 
 		// Shift arguments if data argument was omitted
@@ -9843,17 +9362,8 @@ jQuery.each( [ "get", "post" ], function( _i, method ) {
 	};
 } );
 
-jQuery.ajaxPrefilter( function( s ) {
-	var i;
-	for ( i in s.headers ) {
-		if ( i.toLowerCase() === "content-type" ) {
-			s.contentType = s.headers[ i ] || "";
-		}
-	}
-} );
-
 
-jQuery._evalUrl = function( url, options, doc ) {
+jQuery._evalUrl = function( url ) {
 	return jQuery.ajax( {
 		url: url,
 
@@ -9863,16 +9373,7 @@ jQuery._evalUrl = function( url, options, doc ) {
 		cache: true,
 		async: false,
 		global: false,
-
-		// Only evaluate the response if it is successful (gh-4126)
-		// dataFilter is not invoked for failure responses, so using it instead
... 110342 lines suppressed ...