public class Configuration
extends java.lang.Object
MediaDriver.| Modifier and Type | Field and Description |
|---|---|
static long |
AGENT_IDLE_MAX_PARK_NS |
static long |
AGENT_IDLE_MAX_SPINS |
static long |
AGENT_IDLE_MAX_YIELDS |
static long |
AGENT_IDLE_MIN_PARK_NS |
static long |
CLIENT_LIVENESS_TIMEOUT_DEFAULT_NS
Timeout for client liveness in nanoseconds.
|
static long |
CLIENT_LIVENESS_TIMEOUT_NS |
static java.lang.String |
CLIENT_LIVENESS_TIMEOUT_PROP_NAME
Property name for
Aeron client liveness timeout. |
static int |
CMD_QUEUE_CAPACITY
Capacity for the command queues used between driver agents.
|
static int |
CONDUCTOR_BUFFER_LENGTH |
static int |
CONDUCTOR_BUFFER_LENGTH_DEFAULT
Default buffer length for conductor buffers between the client and the media driver conductor.
|
static java.lang.String |
CONDUCTOR_BUFFER_LENGTH_PROP_NAME
Length (in bytes) of the conductor buffers between the media driver and the client.
|
static java.lang.String |
CONDUCTOR_IDLE_STRATEGY |
static java.lang.String |
CONDUCTOR_IDLE_STRATEGY_PROP_NAME
IdleStrategy to be employed by DriverConductor for ThreadingMode.DEDICATED
and ThreadingMode.SHARED_NETWORK. |
static int |
COUNTERS_METADATA_BUFFER_LENGTH |
static int |
COUNTERS_VALUES_BUFFER_LENGTH |
static int |
COUNTERS_VALUES_BUFFER_LENGTH_DEFAULT
Length of the memory mapped buffers for the system counters file.
|
static java.lang.String |
COUNTERS_VALUES_BUFFER_LENGTH_PROP_NAME
Property name for length of the error buffer for the system counters.
|
static int |
ERROR_BUFFER_LENGTH |
static int |
ERROR_BUFFER_LENGTH_DEFAULT
Default buffer length for the error buffer for the media driver.
|
static java.lang.String |
ERROR_BUFFER_LENGTH_PROP_NAME
Property name for length of the memory mapped buffer for the distinct error log.
|
static long |
HEARTBEAT_TIMEOUT_NS
How often to check liveness and cleanup
|
static long |
IMAGE_LIVENESS_TIMEOUT_DEFAULT_NS
Timeout for
Image liveness in nanoseconds. |
static long |
IMAGE_LIVENESS_TIMEOUT_NS |
static java.lang.String |
IMAGE_LIVENESS_TIMEOUT_PROP_NAME
Property name for
Image liveness timeout. |
static int |
INITIAL_WINDOW_LENGTH_DEFAULT
Default initial window length for flow control sender to receiver purposes
Length of Initial Window
RTT (LAN) = 100 usec
Throughput = 10 Gbps
Buffer = Throughput * RTT
Buffer = (10 * 1000 * 1000 * 1000 / 8) * 0.0001 = 125000
Round to 128KB
|
static java.lang.String |
INITIAL_WINDOW_LENGTH_PROP_NAME
Property name for length of the initial window which must be sufficient for Bandwidth Delay Produce (BDP).
|
static int |
IPC_PUBLICATION_TERM_WINDOW_LENGTH |
static java.lang.String |
IPC_PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
Property name for window limit for IPC publications.
|
static int |
IPC_TERM_BUFFER_LENGTH |
static java.lang.String |
IPC_TERM_BUFFER_LENGTH_PROP_NAME
Property name for term buffer length (in bytes) for IPC buffers.
|
static int |
MAX_RETRANSMITS_DEFAULT
Default max number of active retransmissions per connected stream.
|
static int |
MTU_LENGTH |
static int |
MTU_LENGTH_DEFAULT |
static java.lang.String |
MTU_LENGTH_PROP_NAME
Length of the maximum transmission unit of the media driver's protocol
|
static java.lang.String |
MULTICAST_FLOW_CONTROL_STRATEGY |
static java.lang.String |
MULTICAST_FLOW_CONTROL_STRATEGY_PROP_NAME
FlowControl to be employed for multicast channels. |
static java.lang.String |
MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER |
static java.lang.String |
MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_DEFAULT |
static java.lang.String |
MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME |
static int |
NAK_GROUPSIZE_DEFAULT
Default group size estimate for NAK delay randomization.
|
static int |
NAK_GRTT_DEFAULT
Default group RTT estimate for NAK delay randomization in ms.
|
static long |
NAK_MAX_BACKOFF_DEFAULT
Default max backoff for NAK delay randomization in ms.
|
static OptimalMulticastDelayGenerator |
NAK_MULTICAST_DELAY_GENERATOR
Multicast NAK delay is immediate initial with delayed subsequent delay.
|
static long |
NAK_UNICAST_DELAY_DEFAULT_NS
Default Unicast NAK delay in nanoseconds.
|
static StaticDelayGenerator |
NAK_UNICAST_DELAY_GENERATOR
Unicast NAK delay is immediate initial with delayed subsequent delay.
|
static long |
PENDING_SETUPS_TIMEOUT_NS
Timeout on cleaning up pending SETUP state on subscriber.
|
static long |
PUBLICATION_HEARTBEAT_TIMEOUT_NS
Timeout between heartbeats for publications.
|
static long |
PUBLICATION_LINGER_DEFAULT_NS
Time for
Publications to linger before cleanup. |
static long |
PUBLICATION_LINGER_NS |
static java.lang.String |
PUBLICATION_LINGER_PROP_NAME
Property name for linger timeout on
Publications. |
static long |
PUBLICATION_SETUP_TIMEOUT_NS
Timeout between SETUP frames for publications during initial setup phase.
|
static int |
PUBLICATION_TERM_WINDOW_LENGTH |
static java.lang.String |
PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
Property name for window limit on
Publication side. |
static long |
PUBLICATION_UNBLOCK_TIMEOUT_DEFAULT_NS
Timeout for
Publication unblock in nanoseconds |
static long |
PUBLICATION_UNBLOCK_TIMEOUT_NS |
static java.lang.String |
PUBLICATION_UNBLOCK_TIMEOUT_PROP_NAME
Property name for
Publication unblock timeout. |
static java.lang.String |
RECEIVE_BUFFER_LENGTH_PROP_NAME
Byte buffer length (in bytes) for reads.
|
static int |
RECEIVE_BYTE_BUFFER_LENGTH |
static int |
RECEIVE_BYTE_BUFFER_LENGTH_DEFAULT
Default byte buffer length for reads from network sockets.
|
static java.lang.String |
RECEIVE_CHANNEL_ENDPOINT_SUPPLIER |
static java.lang.String |
RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_DEFAULT |
static java.lang.String |
RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME |
static java.lang.String |
RECEIVER_IDLE_STRATEGY |
static java.lang.String |
RECEIVER_IDLE_STRATEGY_PROP_NAME
|
static long |
RETRANSMIT_UNICAST_DELAY_DEFAULT_NS
Default delay for retransmission of data for unicast.
|
static FeedbackDelayGenerator |
RETRANSMIT_UNICAST_DELAY_GENERATOR
Source uses same for unicast and multicast.
|
static long |
RETRANSMIT_UNICAST_LINGER_DEFAULT_NS
Default delay for linger for unicast.
|
static FeedbackDelayGenerator |
RETRANSMIT_UNICAST_LINGER_GENERATOR |
static java.lang.String |
SEND_CHANNEL_ENDPOINT_SUPPLIER |
static java.lang.String |
SEND_CHANNEL_ENDPOINT_SUPPLIER_DEFAULT |
static java.lang.String |
SEND_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME |
static java.lang.String |
SENDER_IDLE_STRATEGY |
static java.lang.String |
SENDER_IDLE_STRATEGY_PROP_NAME
|
static java.lang.String |
SHARED_IDLE_STRATEGY |
static java.lang.String |
SHARED_IDLE_STRATEGY_PROP_NAME
|
static java.lang.String |
SHARED_NETWORK_IDLE_STRATEGY |
static java.lang.String |
SHARED_NETWORK_IDLE_STRATEGY_PROP_NAME
|
static int |
SOCKET_MULTICAST_TTL |
static int |
SOCKET_MULTICAST_TTL_DEFAULT
0 means use OS default.
|
static java.lang.String |
SOCKET_MULTICAST_TTL_PROP_NAME
Property name for IP_MULTICAST_TTL setting on UDP sockets.
|
static int |
SOCKET_RCVBUF_LENGTH |
static int |
SOCKET_RCVBUF_LENGTH_DEFAULT
0 means use OS default.
|
static java.lang.String |
SOCKET_RCVBUF_LENGTH_PROP_NAME
Property name for SO_RCVBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Produce (BDP).
|
static int |
SOCKET_SNDBUF_LENGTH |
static int |
SOCKET_SNDBUF_LENGTH_DEFAULT
0 means use OS default.
|
static java.lang.String |
SOCKET_SNDBUF_LENGTH_PROP_NAME
Property name for SO_SNDBUF setting on UDP sockets which must be sufficient for Bandwidth Delay Produce (BDP).
|
static long |
STATUS_MESSAGE_TIMEOUT_DEFAULT_NS
Max timeout between SMs.
|
static java.lang.String |
STATUS_MESSAGE_TIMEOUT_PROP_NAME
Property name for status message timeout in nanoseconds.
|
static int |
TERM_BUFFER_IPC_LENGTH_DEFAULT
Default term buffer length.
|
static int |
TERM_BUFFER_LENGTH_DEFAULT
Default term buffer length.
|
static int |
TERM_BUFFER_LENGTH_MAX_DEFAULT
Default term max buffer length.
|
static java.lang.String |
TERM_BUFFER_LENGTH_PROP_NAME
Length (in bytes) of the log buffers for publication terms.
|
static java.lang.String |
TERM_BUFFER_MAX_LENGTH_PROP_NAME
Length (in bytes) of the log buffers for terms for incoming images.
|
static java.lang.String |
TERM_BUFFER_SPARSE_FILE |
static java.lang.String |
TERM_BUFFER_SPARSE_FILE_PROP_NAME
Should term buffers be created as sparse files.
|
static java.lang.String |
THREADING_MODE_DEFAULT |
static java.lang.String |
THREADING_MODE_PROP_NAME
ThreadingMode to be used by the Aeron MediaDriver |
static int |
TO_CLIENTS_BUFFER_LENGTH |
static int |
TO_CLIENTS_BUFFER_LENGTH_DEFAULT
Default buffer length for broadcast buffers from the media driver and the clients.
|
static java.lang.String |
TO_CLIENTS_BUFFER_LENGTH_PROP_NAME
Length (in bytes) of the broadcast buffers from the media driver to the clients.
|
static java.lang.String |
UNICAST_FLOW_CONTROL_STRATEGY |
static java.lang.String |
UNICAST_FLOW_CONTROL_STRATEGY_PROP_NAME
FlowControl to be employed for unicast channels. |
static java.lang.String |
UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER |
static java.lang.String |
UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_DEFAULT |
static java.lang.String |
UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME |
| Constructor and Description |
|---|
Configuration() |
| Modifier and Type | Method and Description |
|---|---|
static org.agrona.concurrent.IdleStrategy |
agentIdleStrategy(java.lang.String name) |
static org.agrona.concurrent.IdleStrategy |
conductorIdleStrategy() |
static int |
initialWindowLength() |
static int |
ipcPublicationTermWindowLength(int termBufferLength)
How far ahead the publisher can get from the sender position for IPC only.
|
static int |
ipcTermBufferLength(int termBufferLength)
How large the term buffer should be for IPC only.
|
static int |
maxTermBufferLength() |
static FlowControlSupplier |
multicastFlowControlSupplier()
Get the supplier of
FlowControls which can be used for changing behavior of flow control for unicast
publications. |
static int |
publicationTermWindowLength(int termBufferLength)
How far ahead the publisher can get from the sender position.
|
static ReceiveChannelEndpointSupplier |
receiveChannelEndpointSupplier()
Get the supplier of
ReceiveChannelEndpoints which can be used for
debugging, monitoring, or modifying the behaviour when receiving from the media channel. |
static org.agrona.concurrent.IdleStrategy |
receiverIdleStrategy() |
static SendChannelEndpointSupplier |
sendChannelEndpointSupplier()
Get the supplier of
SendChannelEndpoints which can be used for
debugging, monitoring, or modifying the behaviour when sending to the media channel. |
static org.agrona.concurrent.IdleStrategy |
senderIdleStrategy() |
static org.agrona.concurrent.IdleStrategy |
sharedIdleStrategy() |
static org.agrona.concurrent.IdleStrategy |
sharedNetworkIdleStrategy() |
static long |
statusMessageTimeout() |
static int |
termBufferLength() |
static ThreadingMode |
threadingMode() |
static FlowControlSupplier |
unicastFlowControlSupplier()
Get the supplier of
FlowControls which can be used for changing behavior of flow control for unicast
publications. |
static void |
validateInitialWindowLength(int initialWindowLength,
int mtuLength)
Validate that the initial window length is suitably greater than MTU.
|
static void |
validateTermBufferLength(int length)
Validate the the term buffer length is a power of two.
|
public static final java.lang.String RECEIVE_BUFFER_LENGTH_PROP_NAME
public static final java.lang.String TERM_BUFFER_LENGTH_PROP_NAME
public static final java.lang.String TERM_BUFFER_MAX_LENGTH_PROP_NAME
public static final java.lang.String CONDUCTOR_BUFFER_LENGTH_PROP_NAME
public static final java.lang.String TO_CLIENTS_BUFFER_LENGTH_PROP_NAME
public static final java.lang.String COUNTERS_VALUES_BUFFER_LENGTH_PROP_NAME
public static final java.lang.String ERROR_BUFFER_LENGTH_PROP_NAME
public static final java.lang.String INITIAL_WINDOW_LENGTH_PROP_NAME
public static final java.lang.String STATUS_MESSAGE_TIMEOUT_PROP_NAME
public static final java.lang.String SOCKET_RCVBUF_LENGTH_PROP_NAME
public static final java.lang.String SOCKET_SNDBUF_LENGTH_PROP_NAME
public static final java.lang.String SOCKET_MULTICAST_TTL_PROP_NAME
public static final java.lang.String PUBLICATION_LINGER_PROP_NAME
Publications.public static final java.lang.String PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
Publication side.public static final int PUBLICATION_TERM_WINDOW_LENGTH
public static final java.lang.String CLIENT_LIVENESS_TIMEOUT_PROP_NAME
Aeron client liveness timeout.public static final java.lang.String IMAGE_LIVENESS_TIMEOUT_PROP_NAME
Image liveness timeout.public static final java.lang.String PUBLICATION_UNBLOCK_TIMEOUT_PROP_NAME
Publication unblock timeout.public static final java.lang.String TERM_BUFFER_SPARSE_FILE_PROP_NAME
public static final java.lang.String TERM_BUFFER_SPARSE_FILE
public static final int TERM_BUFFER_IPC_LENGTH_DEFAULT
public static final java.lang.String IPC_TERM_BUFFER_LENGTH_PROP_NAME
public static final int IPC_TERM_BUFFER_LENGTH
public static final java.lang.String IPC_PUBLICATION_TERM_WINDOW_LENGTH_PROP_NAME
public static final int IPC_PUBLICATION_TERM_WINDOW_LENGTH
public static final int RECEIVE_BYTE_BUFFER_LENGTH_DEFAULT
public static final int RECEIVE_BYTE_BUFFER_LENGTH
public static final int TERM_BUFFER_LENGTH_DEFAULT
public static final int TERM_BUFFER_LENGTH_MAX_DEFAULT
public static final int CONDUCTOR_BUFFER_LENGTH_DEFAULT
public static final int CONDUCTOR_BUFFER_LENGTH
public static final int TO_CLIENTS_BUFFER_LENGTH_DEFAULT
public static final int TO_CLIENTS_BUFFER_LENGTH
public static final int COUNTERS_VALUES_BUFFER_LENGTH_DEFAULT
public static final int COUNTERS_VALUES_BUFFER_LENGTH
public static final int COUNTERS_METADATA_BUFFER_LENGTH
public static final int ERROR_BUFFER_LENGTH_DEFAULT
public static final int ERROR_BUFFER_LENGTH
public static final int NAK_GROUPSIZE_DEFAULT
public static final int NAK_GRTT_DEFAULT
public static final long NAK_MAX_BACKOFF_DEFAULT
public static final OptimalMulticastDelayGenerator NAK_MULTICAST_DELAY_GENERATOR
public static final long NAK_UNICAST_DELAY_DEFAULT_NS
public static final StaticDelayGenerator NAK_UNICAST_DELAY_GENERATOR
public static final long RETRANSMIT_UNICAST_DELAY_DEFAULT_NS
public static final FeedbackDelayGenerator RETRANSMIT_UNICAST_DELAY_GENERATOR
public static final long RETRANSMIT_UNICAST_LINGER_DEFAULT_NS
public static final FeedbackDelayGenerator RETRANSMIT_UNICAST_LINGER_GENERATOR
public static final int MAX_RETRANSMITS_DEFAULT
public static final int INITIAL_WINDOW_LENGTH_DEFAULT
public static final long STATUS_MESSAGE_TIMEOUT_DEFAULT_NS
public static final int SOCKET_RCVBUF_LENGTH_DEFAULT
public static final int SOCKET_RCVBUF_LENGTH
public static final int SOCKET_SNDBUF_LENGTH_DEFAULT
public static final int SOCKET_SNDBUF_LENGTH
public static final int SOCKET_MULTICAST_TTL_DEFAULT
public static final int SOCKET_MULTICAST_TTL
public static final long PUBLICATION_LINGER_DEFAULT_NS
Publications to linger before cleanup.public static final long PUBLICATION_LINGER_NS
public static final long CLIENT_LIVENESS_TIMEOUT_DEFAULT_NS
public static final long CLIENT_LIVENESS_TIMEOUT_NS
public static final long IMAGE_LIVENESS_TIMEOUT_DEFAULT_NS
Image liveness in nanoseconds.public static final long IMAGE_LIVENESS_TIMEOUT_NS
public static final long PUBLICATION_UNBLOCK_TIMEOUT_DEFAULT_NS
Publication unblock in nanosecondspublic static final long PUBLICATION_UNBLOCK_TIMEOUT_NS
public static final long AGENT_IDLE_MAX_SPINS
public static final long AGENT_IDLE_MAX_YIELDS
public static final long AGENT_IDLE_MIN_PARK_NS
public static final long AGENT_IDLE_MAX_PARK_NS
public static final java.lang.String SENDER_IDLE_STRATEGY_PROP_NAME
public static final java.lang.String SENDER_IDLE_STRATEGY
public static final java.lang.String CONDUCTOR_IDLE_STRATEGY_PROP_NAME
IdleStrategy to be employed by DriverConductor for ThreadingMode.DEDICATED
and ThreadingMode.SHARED_NETWORK.public static final java.lang.String CONDUCTOR_IDLE_STRATEGY
public static final java.lang.String RECEIVER_IDLE_STRATEGY_PROP_NAME
public static final java.lang.String RECEIVER_IDLE_STRATEGY
public static final java.lang.String SHARED_NETWORK_IDLE_STRATEGY_PROP_NAME
public static final java.lang.String SHARED_NETWORK_IDLE_STRATEGY
public static final java.lang.String SHARED_IDLE_STRATEGY_PROP_NAME
public static final java.lang.String SHARED_IDLE_STRATEGY
public static final int CMD_QUEUE_CAPACITY
public static final long PENDING_SETUPS_TIMEOUT_NS
public static final long PUBLICATION_SETUP_TIMEOUT_NS
public static final long PUBLICATION_HEARTBEAT_TIMEOUT_NS
public static final java.lang.String UNICAST_FLOW_CONTROL_STRATEGY_PROP_NAME
FlowControl to be employed for unicast channels.public static final java.lang.String UNICAST_FLOW_CONTROL_STRATEGY
public static final java.lang.String MULTICAST_FLOW_CONTROL_STRATEGY_PROP_NAME
FlowControl to be employed for multicast channels.public static final java.lang.String MULTICAST_FLOW_CONTROL_STRATEGY
public static final java.lang.String UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public static final java.lang.String UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_DEFAULT
public static final java.lang.String UNICAST_FLOW_CONTROL_STRATEGY_SUPPLIER
public static final java.lang.String MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_PROP_NAME
public static final java.lang.String MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER_DEFAULT
public static final java.lang.String MULTICAST_FLOW_CONTROL_STRATEGY_SUPPLIER
public static final java.lang.String MTU_LENGTH_PROP_NAME
public static final int MTU_LENGTH_DEFAULT
public static final int MTU_LENGTH
public static final java.lang.String THREADING_MODE_PROP_NAME
ThreadingMode to be used by the Aeron MediaDriverpublic static final java.lang.String THREADING_MODE_DEFAULT
public static final long HEARTBEAT_TIMEOUT_NS
public static final java.lang.String SEND_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
public static final java.lang.String SEND_CHANNEL_ENDPOINT_SUPPLIER_DEFAULT
public static final java.lang.String SEND_CHANNEL_ENDPOINT_SUPPLIER
public static final java.lang.String RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_PROP_NAME
public static final java.lang.String RECEIVE_CHANNEL_ENDPOINT_SUPPLIER_DEFAULT
public static final java.lang.String RECEIVE_CHANNEL_ENDPOINT_SUPPLIER
public static int publicationTermWindowLength(int termBufferLength)
termBufferLength - to be used when PUBLICATION_TERM_WINDOW_LENGTH is not set.public static void validateTermBufferLength(int length)
length - of the term bufferpublic static void validateInitialWindowLength(int initialWindowLength,
int mtuLength)
initialWindowLength - to be validated.mtuLength - against which to validate.public static org.agrona.concurrent.IdleStrategy agentIdleStrategy(java.lang.String name)
public static org.agrona.concurrent.IdleStrategy senderIdleStrategy()
public static org.agrona.concurrent.IdleStrategy conductorIdleStrategy()
public static org.agrona.concurrent.IdleStrategy receiverIdleStrategy()
public static org.agrona.concurrent.IdleStrategy sharedNetworkIdleStrategy()
public static org.agrona.concurrent.IdleStrategy sharedIdleStrategy()
public static int termBufferLength()
public static int maxTermBufferLength()
public static int initialWindowLength()
public static long statusMessageTimeout()
public static ThreadingMode threadingMode()
public static int ipcTermBufferLength(int termBufferLength)
termBufferLength - to be used when IPC_TERM_BUFFER_LENGTH is not set.public static int ipcPublicationTermWindowLength(int termBufferLength)
termBufferLength - to be used when IPC_PUBLICATION_TERM_WINDOW_LENGTH is not set.public static SendChannelEndpointSupplier sendChannelEndpointSupplier()
SendChannelEndpoints which can be used for
debugging, monitoring, or modifying the behaviour when sending to the media channel.SendChannelEndpointSupplier.public static ReceiveChannelEndpointSupplier receiveChannelEndpointSupplier()
ReceiveChannelEndpoints which can be used for
debugging, monitoring, or modifying the behaviour when receiving from the media channel.SendChannelEndpointSupplier.public static FlowControlSupplier unicastFlowControlSupplier()
FlowControls which can be used for changing behavior of flow control for unicast
publications.FlowControlSupplier.public static FlowControlSupplier multicastFlowControlSupplier()
FlowControls which can be used for changing behavior of flow control for unicast
publications.FlowControlSupplier.Copyright © 2014 - 2016 Real Logic Ltd. All Rights Reserved.