├── .ci ├── certs │ ├── ca_certificate.pem │ ├── ca_key.pem │ ├── client_localhost.p12 │ ├── client_localhost_certificate.pem │ ├── client_localhost_key.pem │ ├── server_localhost.p12 │ ├── server_localhost_certificate.pem │ └── server_localhost_key.pem └── ubuntu │ ├── advanced.config │ ├── definitions.json │ ├── enabled_plugins │ ├── gha-log-check.sh │ ├── gha-setup.sh │ ├── log │ └── .gitkeep │ └── rabbitmq.conf ├── .github └── workflows │ └── build-test.yaml ├── .gitignore ├── .vscode └── launch.json ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── create_tag.sh ├── docs └── examples │ ├── README.md │ ├── advanced_settings │ └── advanced_settings.go │ ├── broadcast │ └── broadcast.go │ ├── getting_started │ └── main.go │ ├── publisher_msg_targets │ └── publisher_msg_targets.go │ ├── reliable │ └── reliable.go │ ├── rpc_echo_server │ └── main.go │ ├── sql_stream_filter │ └── sql_stream_filter.go │ ├── streams │ └── streams.go │ ├── streams_filtering │ └── streams_filtering.go │ ├── tls │ └── tls.go │ └── video │ └── getting_started.go ├── go.mod ├── go.sum └── pkg ├── rabbitmqamqp ├── address.go ├── address_test.go ├── amqp_binding.go ├── amqp_binding_test.go ├── amqp_connection.go ├── amqp_connection_recovery.go ├── amqp_connection_recovery_test.go ├── amqp_connection_test.go ├── amqp_consumer.go ├── amqp_consumer_stream_test.go ├── amqp_consumer_test.go ├── amqp_environment.go ├── amqp_environment_test.go ├── amqp_exchange.go ├── amqp_exchange_test.go ├── amqp_management.go ├── amqp_management_test.go ├── amqp_publisher.go ├── amqp_publisher_test.go ├── amqp_queue.go ├── amqp_queue_test.go ├── amqp_types.go ├── amqp_utils.go ├── amqp_utils_test.go ├── common.go ├── converters.go ├── converters_test.go ├── entities.go ├── entities_test.go ├── example_rpc_custom_test.go ├── example_rpc_test.go ├── features_available.go ├── features_available_test.go ├── life_cycle.go ├── log.go ├── messages_helper.go ├── oauth2_test.go ├── pkg_suite_test.go ├── requester.go ├── requester_test.go ├── responder.go ├── responder_test.go ├── rpc_e2e_test.go ├── test_utils.go ├── uri.go └── uri_test.go └── test-helper └── http_utils.go /.ci/certs/ca_certificate.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/ca_certificate.pem -------------------------------------------------------------------------------- /.ci/certs/ca_key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/ca_key.pem -------------------------------------------------------------------------------- /.ci/certs/client_localhost.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/client_localhost.p12 -------------------------------------------------------------------------------- /.ci/certs/client_localhost_certificate.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/client_localhost_certificate.pem -------------------------------------------------------------------------------- /.ci/certs/client_localhost_key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/client_localhost_key.pem -------------------------------------------------------------------------------- /.ci/certs/server_localhost.p12: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/server_localhost.p12 -------------------------------------------------------------------------------- /.ci/certs/server_localhost_certificate.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/server_localhost_certificate.pem -------------------------------------------------------------------------------- /.ci/certs/server_localhost_key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/certs/server_localhost_key.pem -------------------------------------------------------------------------------- /.ci/ubuntu/advanced.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/ubuntu/advanced.config -------------------------------------------------------------------------------- /.ci/ubuntu/definitions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/ubuntu/definitions.json -------------------------------------------------------------------------------- /.ci/ubuntu/enabled_plugins: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/ubuntu/enabled_plugins -------------------------------------------------------------------------------- /.ci/ubuntu/gha-log-check.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/ubuntu/gha-log-check.sh -------------------------------------------------------------------------------- /.ci/ubuntu/gha-setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/ubuntu/gha-setup.sh -------------------------------------------------------------------------------- /.ci/ubuntu/log/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.ci/ubuntu/rabbitmq.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.ci/ubuntu/rabbitmq.conf -------------------------------------------------------------------------------- /.github/workflows/build-test.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.github/workflows/build-test.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/README.md -------------------------------------------------------------------------------- /create_tag.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/create_tag.sh -------------------------------------------------------------------------------- /docs/examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/README.md -------------------------------------------------------------------------------- /docs/examples/advanced_settings/advanced_settings.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/advanced_settings/advanced_settings.go -------------------------------------------------------------------------------- /docs/examples/broadcast/broadcast.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/broadcast/broadcast.go -------------------------------------------------------------------------------- /docs/examples/getting_started/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/getting_started/main.go -------------------------------------------------------------------------------- /docs/examples/publisher_msg_targets/publisher_msg_targets.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/publisher_msg_targets/publisher_msg_targets.go -------------------------------------------------------------------------------- /docs/examples/reliable/reliable.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/reliable/reliable.go -------------------------------------------------------------------------------- /docs/examples/rpc_echo_server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/rpc_echo_server/main.go -------------------------------------------------------------------------------- /docs/examples/sql_stream_filter/sql_stream_filter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/sql_stream_filter/sql_stream_filter.go -------------------------------------------------------------------------------- /docs/examples/streams/streams.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/streams/streams.go -------------------------------------------------------------------------------- /docs/examples/streams_filtering/streams_filtering.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/streams_filtering/streams_filtering.go -------------------------------------------------------------------------------- /docs/examples/tls/tls.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/tls/tls.go -------------------------------------------------------------------------------- /docs/examples/video/getting_started.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/docs/examples/video/getting_started.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/go.sum -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/address.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/address.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/address_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/address_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_binding.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_binding.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_binding_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_binding_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_connection.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_connection_recovery.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_connection_recovery.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_connection_recovery_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_connection_recovery_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_connection_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_connection_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_consumer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_consumer.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_consumer_stream_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_consumer_stream_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_consumer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_consumer_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_environment.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_environment.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_environment_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_environment_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_exchange.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_exchange.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_exchange_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_exchange_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_management.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_management.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_management_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_management_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_publisher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_publisher.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_publisher_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_publisher_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_queue.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_queue_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_queue_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_types.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_utils.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/amqp_utils_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/amqp_utils_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/common.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/common.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/converters.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/converters.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/converters_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/converters_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/entities.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/entities.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/entities_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/entities_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/example_rpc_custom_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/example_rpc_custom_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/example_rpc_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/example_rpc_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/features_available.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/features_available.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/features_available_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/features_available_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/life_cycle.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/life_cycle.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/log.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/log.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/messages_helper.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/messages_helper.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/oauth2_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/oauth2_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/pkg_suite_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/pkg_suite_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/requester.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/requester.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/requester_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/requester_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/responder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/responder.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/responder_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/responder_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/rpc_e2e_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/rpc_e2e_test.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/test_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/test_utils.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/uri.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/uri.go -------------------------------------------------------------------------------- /pkg/rabbitmqamqp/uri_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/rabbitmqamqp/uri_test.go -------------------------------------------------------------------------------- /pkg/test-helper/http_utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rabbitmq/rabbitmq-amqp-go-client/HEAD/pkg/test-helper/http_utils.go --------------------------------------------------------------------------------