# Hierarchy For All Packages

Package Hierarchies:

- org.apache.synapse.transport.certificatevalidation,
- org.apache.synapse.transport.certificatevalidation.cache,
- org.apache.synapse.transport.certificatevalidation.crl,
- org.apache.synapse.transport.certificatevalidation.ocsp,
- org.apache.synapse.transport.certificatevalidation.pathvalidation,
- org.apache.synapse.transport.customlogsetter,
- org.apache.synapse.transport.dynamicconfigurations,
- org.apache.synapse.transport.dynamicconfigurations.jmx,
- org.apache.synapse.transport.exceptions,
- org.apache.synapse.transport.http.access,
- org.apache.synapse.transport.http.conn,
- org.apache.synapse.transport.http.wrapper,
- org.apache.synapse.transport.nhttp,
- org.apache.synapse.transport.nhttp.config,
- org.apache.synapse.transport.nhttp.debug,
- org.apache.synapse.transport.nhttp.util,
- org.apache.synapse.transport.passthru,
- org.apache.synapse.transport.passthru.api,
- org.apache.synapse.transport.passthru.config,
- org.apache.synapse.transport.passthru.connections,
- org.apache.synapse.transport.passthru.core,
- org.apache.synapse.transport.passthru.core.ssl,
- org.apache.synapse.transport.passthru.jmx,
- org.apache.synapse.transport.passthru.util

## Class Hierarchy

- java.lang.Object
  - org.apache.synapse.transport.nhttp.debug.AbstractConnectionDebug
    - org.apache.synapse.transport.nhttp.debug.ClientConnectionDebug
    - org.apache.synapse.transport.nhttp.debug.ServerConnectionDebug
  - org.apache.axis2.handlers.AbstractHandler (implements org.apache.axis2.engine.Handler)
    - org.apache.axis2.engine.AbstractDispatcher
      - org.apache.synapse.transport.passthru.util.CacheMessageBuilderDispatchandler
      - org.apache.synapse.transport.passthru.util.RelaySecuirtyMessageBuilderDispatchandler
      - org.apache.synapse.transport.passthru.util.TraceMessageBuilderDispatchHandler
    - org.apache.synapse.transport.nhttp.HttpCoreNIOSender (implements org.apache.axis2.transport.base.ManagementSupport, org.apache.axis2.transport.TransportSender)
      - org.apache.synapse.transport.nhttp.HttpCoreNIOSSLSender (implements org.apache.synapse.transport.dynamicconfigurations.SSLProfileLoader)
    - org.apache.synapse.transport.passthru.PassThroughHttpSender (implements org.apache.axis2.transport.TransportSender)
      - org.apache.synapse.transport.passthru.PassThroughHttpSSLSender (implements org.apache.synapse.transport.dynamicconfigurations.SSLProfileLoader)
    - org.apache.synapse.transport.passthru.util.WSAddressingHandler
  - org.apache.http.message.AbstractHttpMessage (implements org.apache.http.HttpMessage)
    - org.apache.http.message.BasicHttpRequest (implements org.apache.http.HttpRequest)
      - org.apache.http.message.BasicHttpEntityEnclosingRequest (implements org.apache.http.HttpEntityEnclosingRequest)
        - org.apache.synapse.transport.http.conn.BasicHttpEntityPossibleEnclosingRequest
  - org.apache.http.impl.nio.reactor.AbstractIODispatch<T> (implements org.apache.http.nio.reactor.IOEventDispatch)
    - org.apache.synapse.transport.nhttp.ServerIODispatch
    - org.apache.synapse.transport.passthru.ServerIODispatch
      - org.apache.synapse.transport.passthru.core.MultiListenerServerIODispatch
        - org.apache.synapse.transport.passthru.core.ssl.MultiListenerSSLServerIODispatch
  - org.apache.synapse.transport.http.access.Access
  - org.apache.synapse.transport.http.access.Access.AcceptCharSetElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.AcceptElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.AcceptEncodingElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.AcceptLanguageElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.ByteSentElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.ConnectionElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.ContentEncodingElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.ContentTypeElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.CookieElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.DateAndTimeElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.HeaderElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.HostElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.HttpStatusCodeElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.KeepAliveElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.LocalAddrElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.LocalServerNameElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.LogicalUserNameElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.MethodElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.RefererElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.RequestAttributeElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.RequestElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.RequestURIElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.ResponseHeaderElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.ServerElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.StringElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.TransferEncodingElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.UserAgentElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.UserElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.Access.VaryElement (implements org.apache.synapse.transport.http.access.Access.AccessLogElement)
  - org.apache.synapse.transport.http.access.AccessConfiguration
  - org.apache.synapse.transport.http.access.AccessConstants
  - org.apache.synapse.transport.http.access.AccessHandler
  - org.apache.synapse.transport.http.access.AccessLogger
  - org.apache.synapse.transport.http.access.AccessTimeUtil
  - org.apache.synapse.transport.nhttp.util.ActiveConnectionMonitor (implements java.lang.Runnable)
  - org.apache.synapse.transport.passthru.util.ActiveConnectionMonitor (implements java.lang.Runnable)
  - org.apache.synapse.transport.nhttp.Axis2HttpRequest
  - org.apache.synapse.transport.passthru.config.BaseConfiguration
    - org.apache.synapse.transport.passthru.config.SourceConfiguration
    - org.apache.synapse.transport.passthru.config.TargetConfiguration
  - org.apache.synapse.transport.passthru.util.BinaryRelayBuilder (implements org.apache.axis2.builder.Builder)
  - org.apache.synapse.transport.passthru.util.BufferFactory
  - org.apache.synapse.transport.certificatevalidation.cache.CacheController (implements org.apache.synapse.transport.certificatevalidation.cache.CacheControllerMBean)
  - org.apache.synapse.transport.certificatevalidation.cache.CacheManager
  - org.apache.synapse.transport.certificatevalidation.pathvalidation.CertificatePathValidator
  - org.apache.synapse.transport.http.conn.ClientConnFactory
  - org.apache.synapse.transport.nhttp.config.ClientConnFactoryBuilder
  - org.apache.synapse.transport.nhttp.ClientHandler (implements org.apache.http.nio.NHttpClientEventHandler)
  - org.apache.synapse.transport.http.conn.ClientSSLSetupHandler (implements org.apache.http.nio.reactor.ssl.SSLSetupHandler)
  - org.apache.synapse.transport.nhttp.ClientWorker (implements java.lang.Runnable)
  - org.apache.synapse.transport.passthru.ClientWorker (implements java.lang.Runnable)
  - org.apache.synapse.transport.passthru.ConnectCallback (implements org.apache.http.nio.reactor.SessionRequestCallback)
  - org.apache.synapse.transport.nhttp.ConnectionPool
  - org.apache.synapse.transport.nhttp.util.ConnectionsView (implements org.apache.synapse.transport.nhttp.util.ConnectionsViewMBean)
  - org.apache.synapse.transport.passthru.jmx.ConnectionsView (implements org.apache.synapse.transport.passthru.jmx.ConnectionsViewMBean)
  - org.apache.synapse.transport.passthru.config.ConnectionTimeoutConfiguration
  - org.apache.synapse.transport.passthru.util.ControlledByteBuffer
  - org.apache.synapse.transport.certificatevalidation.crl.CRLCache (implements org.apache.synapse.transport.certificatevalidation.cache.ManageableCache)
  - org.apache.synapse.transport.certificatevalidation.crl.CRLVerifier (implements org.apache.synapse.transport.certificatevalidation.RevocationVerifier)
  - org.apache.synapse.transport.customlogsetter.CustomLogSetter
  - org.apache.synapse.transport.nhttp.DefaultHttpGetProcessor (implements org.apache.synapse.transport.nhttp.HttpGetRequestProcessor)
  - org.apache.synapse.transport.http.conn.DefaultProxyAuthenticator (implements org.apache.synapse.transport.http.conn.ProxyAuthenticator)
  - org.apache.synapse.transport.passthru.util.DeferredMessageBuilder
  - org.apache.synapse.transport.passthru.DeliveryAgent
  - org.apache.synapse.transport.dynamicconfigurations.DynamicProfileReloader
    - org.apache.synapse.transport.dynamicconfigurations.ListenerProfileReloader
    - org.apache.synapse.transport.dynamicconfigurations.SenderProfileReloader
  - org.apache.synapse.transport.passthru.ErrorCodes
  - org.apache.http.nio.util.ExpandableBuffer (implements org.apache.http.io.BufferInfo, org.apache.http.nio.util.BufferInfo)
    - org.apache.synapse.transport.nhttp.NhttpSharedOutputBuffer (implements org.apache.http.nio.util.ContentOutputBuffer)
  - org.apache.synapse.transport.nhttp.util.GzipMessageFormatterDecorator (implements org.apache.axis2.transport.MessageFormatter)
  - org.apache.synapse.transport.passthru.connections.HostConnections
  - org.apache.synapse.transport.nhttp.HttpCoreNIOListener (implements org.apache.axis2.transport.base.ManagementSupport, org.apache.axis2.transport.TransportListener)
    - org.apache.synapse.transport.nhttp.HttpCoreNIOMultiSSLListener (implements org.apache.synapse.transport.dynamicconfigurations.SSLProfileLoader)
    - org.apache.synapse.transport.nhttp.HttpCoreNIOSSLListener
  - org.apache.synapse.transport.nhttp.HttpCoreRequestResponseTransport (implements org.apache.axis2.transport.RequestResponseTransport)
  - org.apache.synapse.transport.http.wrapper.HttpRequestWrapper
  - org.apache.synapse.transport.http.wrapper.HttpResponseWrapper
  - org.apache.synapse.transport.nhttp.util.LatencyCollector
  - org.apache.synapse.transport.passthru.jmx.LatencyCollector
  - org.apache.synapse.transport.nhttp.util.LatencyParameter
  - org.apache.synapse.transport.passthru.jmx.LatencyParameter
  - org.apache.synapse.transport.nhttp.util.LatencyView (implements org.apache.synapse.transport.nhttp.util.LatencyViewMBean)
  - org.apache.synapse.transport.passthru.jmx.LatencyView (implements org.apache.synapse.transport.passthru.jmx.LatencyViewMBean)
  - org.apache.synapse.transport.nhttp.ListenerContext
  - org.apache.synapse.transport.http.conn.LoggingUtils
  - org.apache.synapse.transport.passthru.jmx.MBeanRegistrar
  - org.apache.synapse.transport.nhttp.util.MessageFormatterDecoratorFactory
  - org.apache.axis2.transport.base.MetricsCollector
    - org.apache.synapse.transport.nhttp.util.NhttpMetricsCollector
    - org.apache.synapse.transport.passthru.jmx.PassThroughTransportMetricsCollector
  - org.apache.synapse.transport.nhttp.util.MultiSSLProfileReloader (implements org.apache.synapse.transport.nhttp.util.MultiSSLProfileReloaderMBean)
  - org.apache.synapse.transport.nhttp.NHttpConfiguration
  - org.apache.http.impl.nio.NHttpConnectionBase (implements org.apache.http.HttpInetConnection, org.apache.http.nio.NHttpConnection, org.apache.http.nio.reactor.SessionBufferStatus, org.apache.http.nio.reactor.SocketAccessor)
    - org.apache.http.impl.nio.DefaultNHttpClientConnection (implements org.apache.http.nio.NHttpClientIOTarget)
      - org.apache.synapse.transport.http.conn.LoggingNHttpClientConnection (implements org.apache.synapse.transport.http.conn.UpgradableNHttpConnection)
    - org.apache.http.impl.nio.DefaultNHttpServerConnection (implements org.apache.http.nio.NHttpServerIOTarget)
      - org.apache.synapse.transport.http.conn.LoggingNHttpServerConnection (implements org.apache.synapse.transport.http.conn.UpgradableNHttpConnection)
  - org.apache.synapse.transport.nhttp.debug.NhttpConnectionDebugConfig
  - org.apache.synapse.transport.nhttp.NhttpConstants
  - org.apache.synapse.transport.nhttp.util.NhttpUtil
  - org.apache.synapse.transport.nhttp.NoValidateCertTrustManager (implements javax.net.ssl.X509TrustManager)
  - java.util.Observable
    - org.apache.synapse.transport.http.conn.SynapseDebugInfoHolder
  - org.apache.synapse.transport.certificatevalidation.ocsp.OCSPCache (implements org.apache.synapse.transport.certificatevalidation.cache.ManageableCache)
  - org.apache.synapse.transport.certificatevalidation.ocsp.OCSPVerifier (implements org.apache.synapse.transport.certificatevalidation.RevocationVerifier)
  - org.apache.synapse.transport.passthru.config.PassThroughConfiguration
  - org.apache.synapse.transport.passthru.PassThroughConstants
  - org.apache.synapse.transport.passthru.PassThroughHttpListener (implements org.apache.axis2.transport.TransportListener)
    - org.apache.synapse.transport.passthru.PassThroughHttpMultiSSLListener (implements org.apache.synapse.transport.dynamicconfigurations.SSLProfileLoader)
    - org.apache.synapse.transport.passthru.PassThroughHttpSSLListener
  - org.apache.synapse.transport.passthru.api.PassThroughInboundEndpointHandler
  - org.apache.synapse.transport.passthru.core.PassThroughListeningIOReactorManager
  - org.apache.synapse.transport.passthru.api.PassThroughNHttpGetProcessor (implements org.apache.synapse.transport.passthru.HttpGetRequestProcessor)
  - org.apache.synapse.transport.passthru.api.PassThroughOutboundEndpointHandler
  - org.apache.synapse.transport.passthru.core.PassThroughSenderManager
  - org.apache.synapse.transport.passthru.core.PassThroughSharedListenerConfiguration
  - org.apache.synapse.transport.passthru.util.PassThroughTransportUtils
  - org.apache.synapse.transport.passthru.Pipe
  - java.security.cert.PKIXCertPathChecker (implements java.security.cert.CertPathChecker, java.lang.Cloneable)
    - org.apache.synapse.transport.certificatevalidation.pathvalidation.PathChecker
  - org.apache.synapse.transport.http.conn.ProfileProxyAuthenticator (implements org.apache.synapse.transport.http.conn.ProxyAuthenticator)
  - org.apache.synapse.transport.http.conn.ProxyConfig
  - org.apache.synapse.transport.nhttp.config.ProxyConfigBuilder
  - org.apache.synapse.transport.http.conn.ProxyProfileConfig
  - org.apache.synapse.transport.http.conn.ProxyTunnelHandler
  - org.apache.synapse.transport.passthru.util.RelayConstants
  - org.apache.synapse.transport.passthru.util.RelayUtils
  - org.apache.synapse.transport.nhttp.util.RESTUtil
  - org.apache.synapse.transport.certificatevalidation.RevocationVerificationManager
  - org.apache.synapse.transport.http.conn.Scheme
  - org.apache.synapse.transport.nhttp.util.SecureVaultValueReader
  - org.apache.synapse.transport.http.conn.ServerConnFactory
  - org.apache.synapse.transport.nhttp.config.ServerConnFactoryBuilder
    - org.apache.synapse.transport.passthru.core.ssl.SSLServerConnFactoryBuilder
  - org.apache.synapse.transport.nhttp.ServerHandler (implements org.apache.http.nio.NHttpServerEventHandler)
  - org.apache.synapse.transport.http.conn.ServerSSLSetupHandler (implements org.apache.http.nio.reactor.ssl.SSLSetupHandler)
  - org.apache.synapse.transport.nhttp.ServerWorker (implements java.lang.Runnable)
  - org.apache.synapse.transport.passthru.ServerWorker (implements java.lang.Runnable)
  - org.apache.synapse.transport.passthru.connections.SourceConnections
  - org.apache.synapse.transport.passthru.SourceContext
  - org.apache.synapse.transport.passthru.SourceHandler (implements org.apache.http.nio.NHttpServerEventHandler)
  - org.apache.synapse.transport.passthru.SourceRequest
  - org.apache.synapse.transport.passthru.SourceResponse
  - org.apache.synapse.transport.passthru.util.SourceResponseFactory
  - org.apache.synapse.transport.passthru.core.ssl.SSLConfiguration
  - org.apache.synapse.transport.passthru.core.ssl.SSLConnectionUtils
  - org.apache.synapse.transport.http.conn.SSLContextDetails
  - org.apache.synapse.transport.dynamicconfigurations.jmx.SSLProfileInvoker (implements org.apache.synapse.transport.dynamicconfigurations.jmx.SSLProfileInvokerMBean)
  - org.apache.synapse.transport.passthru.util.StreamingOnRequestDataSource (implements javax.activation.DataSource)
  - org.apache.synapse.transport.http.conn.SynapseBackEndWireLogs (implements java.io.Serializable)
  - org.apache.synapse.transport.http.conn.SynapseHTTPRequestFactory (implements org.apache.http.HttpRequestFactory)
  - org.apache.synapse.transport.http.conn.SynapseWireLogHolder (implements java.io.Serializable)
  - org.apache.synapse.transport.passthru.connections.TargetConnections
  - org.apache.synapse.transport.passthru.TargetContext
  - org.apache.synapse.transport.passthru.TargetErrorHandler
  - org.apache.synapse.transport.passthru.TargetHandler (implements org.apache.http.nio.NHttpClientEventHandler)
  - org.apache.synapse.transport.passthru.TargetRequest
  - org.apache.synapse.transport.passthru.util.TargetRequestFactory
  - org.apache.synapse.transport.passthru.TargetResponse
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - org.apache.synapse.transport.certificatevalidation.CertificateVerificationException
      - java.lang.RuntimeException
        - org.apache.synapse.transport.exceptions.InvalidConfigurationException
  - java.util.TimerTask (implements java.lang.Runnable)
    - org.apache.synapse.transport.dynamicconfigurations.FileUpdateNotificationHandler
  - org.apache.synapse.transport.passthru.jmx.TransportView (implements org.apache.synapse.transport.passthru.jmx.TransportViewMBean)

## Interface Hierarchy

- org.apache.synapse.transport.http.access.Access.AccessLogElement
- java.lang.AutoCloseable
  - java.io.Closeable
    - org.apache.http.HttpConnection
      - org.apache.http.nio.NHttpConnection (also extends org.apache.http.nio.IOControl)
        - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
      - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
    - org.apache.http.nio.NHttpConnection (also extends org.apache.http.HttpConnection, org.apache.http.nio.IOControl)
      - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
    - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
  - org.apache.http.HttpConnection
    - org.apache.http.nio.NHttpConnection (also extends org.apache.http.nio.IOControl)
      - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
    - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
  - org.apache.http.nio.NHttpConnection (also extends org.apache.http.HttpConnection, org.apache.http.nio.IOControl)
    - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
  - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
- org.apache.synapse.transport.certificatevalidation.cache.CacheControllerMBean
- org.apache.synapse.transport.nhttp.util.ConnectionsViewMBean
- org.apache.synapse.transport.passthru.jmx.ConnectionsViewMBean
- org.apache.synapse.transport.certificatevalidation.Constants
- org.apache.synapse.transport.nhttp.HttpGetRequestProcessor
- org.apache.synapse.transport.passthru.HttpGetRequestProcessor
- org.apache.http.nio.IOControl
  - org.apache.http.nio.NHttpConnection (also extends org.apache.http.HttpConnection)
    - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
  - org.apache.synapse.transport.http.conn.UpgradableNHttpConnection
- org.apache.synapse.transport.nhttp.util.LatencyViewMBean
- org.apache.synapse.transport.passthru.jmx.LatencyViewMBean
- org.apache.synapse.transport.certificatevalidation.cache.ManageableCache
- org.apache.synapse.transport.certificatevalidation.cache.ManageableCacheValue
- org.apache.synapse.transport.nhttp.util.MultiSSLProfileReloaderMBean
- org.apache.synapse.transport.passthru.config.PassThroughConfigPNames
- org.apache.synapse.transport.http.conn.ProxyAuthenticator
- org.apache.synapse.transport.certificatevalidation.RevocationVerifier
- org.apache.synapse.transport.dynamicconfigurations.jmx.SSLProfileInvokerMBean
- org.apache.synapse.transport.dynamicconfigurations.SSLProfileLoader
- org.apache.synapse.transport.passthru.jmx.TransportViewMBean

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - org.apache.synapse.transport.http.conn.SynapseWireLogHolder.PHASE
    - org.apache.synapse.transport.http.conn.SynapseWireLogHolder.RequestType
    - org.apache.synapse.transport.http.conn.SSLClientAuth
    - org.apache.synapse.transport.passthru.ProtocolState
    - org.apache.synapse.transport.passthru.core.IOReactorSharingMode
    - org.apache.synapse.transport.certificatevalidation.RevocationStatus

Copyright © 2005–2019 Apache Software Foundation. All rights reserved.