- Publicity: Public Only All
message-relay-procs.tcl
Generic MessageRelay procs Provide means to publish a subscription key and let clients write to these keys. These functions are used e.g. by the chat.
This file defines the following Objects and Classes: ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::none
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::MessageRelay
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::bgdelivery
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
, ::xo::mr::connchan
- Location:
- packages/xotcl-core/tcl/message-relay-procs.tcl
- Created:
- 2019-02-23
- Author:
- Gustaf Neumann
Procedures in this file
- Class ::xo::MessageRelay (public)
- Object ::xo::mr::bgdelivery (public)
- Object ::xo::mr::connchan (public)
- Object ::xo::mr::none (public)
- xo::MessageRelay instproc can_be_used (public)
- xo::MessageRelay instproc encode_message (public)
- xo::MessageRelay instproc send_to_subscriber (public)
- xo::MessageRelay instproc subscribe (public)
- xo::MessageRelay instproc sweep (public)
- xo::mr::bgdelivery proc can_be_used (public)
- xo::mr::bgdelivery proc send_to_subscriber (public)
- xo::mr::bgdelivery proc subscribe (public)
- xo::mr::bgdelivery proc sweep (public)
- xo::mr::connchan proc can_be_used (public)
- xo::mr::connchan proc send_to_subscriber (public)
- xo::mr::connchan proc subscribe (public)
- xo::mr::connchan proc sweep (public)
Detailed information
Class ::xo::MessageRelay (public)
::nx::Class ::xo::MessageRelay
Generic Message Relay class
- Testcases:
- No testcase defined.
Object ::xo::mr::bgdelivery (public)
::xo::MessageRelay ::xo::mr::bgdelivery
Message relay based on bgdelivery
Object ::xo::mr::connchan (public)
::xo::MessageRelay ::xo::mr::connchan
Message relay based on ns_connchan
xo::MessageRelay method can_be_used (public)
<instance of xo::MessageRelay> can_be_used
Check, if a message relay can be used in the current configuration.
- Testcases:
- No testcase defined.
xo::MessageRelay method encode_message (public)
<instance of xo::MessageRelay> encode_message mode msg
Provide different "encoding" depending on the mode. Notice that for one chat, multiple clients might have difference modes, since the modes are determined at also by the capabilities of the client browser. So the incoming message has to be recoded multiple times.
- Parameters:
- mode (required)
- msg (required)
- Testcases:
- No testcase defined.
xo::MessageRelay method send_to_subscriber (public)
<instance of xo::MessageRelay> send_to_subscriber key msg
Send a message to a service identified by the key (communication hub).
- Parameters:
- key (required)
- id for an existing communication hub
- msg (required)
- message to be sent
- Testcases:
- No testcase defined.
xo::MessageRelay method subscribe (public)
<instance of xo::MessageRelay> subscribe [ -initmsg initmsg ] \ [ -mode mode ] key
Subscribe to a service identified by a key.
- Switches:
- -initmsg (optional)
- optional message to be sent, when subscription happens
- -mode (optional, defaults to
"default")- optional mode
- Parameters:
- key (required)
- unique id for a (potentially new communication hub)
- Testcases:
- No testcase defined.
xo::MessageRelay method sweep (public)
<instance of xo::MessageRelay> sweep key
Check existing subscriptions and clean stale ones.
- Parameters:
- key (required)
- key of the communication hub
- Testcases:
- No testcase defined.
xo::mr::bgdelivery proc can_be_used (public)
xo::mr::bgdeliverycan_be_used
To use the bgdelivery serive, we require support from the web server, an installed bgdelivery. This method does not work on HTTPS, since this method writes to the raw sockets.
- Testcases:
- No testcase defined.
xo::mr::bgdelivery proc send_to_subscriber (public)
xo::mr::bgdeliverysend_to_subscriber key msg
Send a message to the subscriber via bgdelivery
- Parameters:
- key (required)
- msg (required)
- Testcases:
- No testcase defined.
xo::mr::bgdelivery proc subscribe (public)
xo::mr::bgdeliverysubscribe [ -initmsg initmsg ] [ -mode mode ] key
Subscribe to a messaging service using bgdelivery as the low level transport.
- Switches:
- -initmsg (optional)
- -mode (optional, defaults to
"default")- Parameters:
- key (required)
- Testcases:
- No testcase defined.
xo::mr::bgdelivery proc sweep (public)
xo::mr::bgdeliverysweep key
Clean up messages for this key. This should handle potentially stale operations.
- Parameters:
- key (required)
- Testcases:
- No testcase defined.
xo::mr::connchan proc can_be_used (public)
xo::mr::connchancan_be_used
ns_connchan can be used on every recent NaviServer.
- Testcases:
- No testcase defined.
xo::mr::connchan proc send_to_subscriber (public)
xo::mr::connchansend_to_subscriber key msg
Write directly to the subscribers from the connection thread via ns_connchan. It would be possible, to perform asynchronous operations via "ns_connchan callback", which would be handled in the background. Not sure, this is necessary.
- Parameters:
- key (required)
- msg (required)
- Testcases:
- No testcase defined.
xo::mr::connchan proc subscribe (public)
xo::mr::connchansubscribe [ -initmsg initmsg ] [ -mode mode ] key
ns_log notice "#### [self] subscribe $key mode $mode" Unplug the connection channel from the current connection thread. The currently unplugged channels can be queried via "ns_connchan list"
- Switches:
- -initmsg (optional)
- -mode (optional)
- Parameters:
- key (required)
- Testcases:
- No testcase defined.
xo::mr::connchan proc sweep (public)
xo::mr::connchansweep key
For the time being, do nothing. Since the chat is verbose on logins/logouts, write operations will fail, in which case the array is cleaned up. If this is not sufficient, probably a "ns_connchan eof" operation would be useful.
- Parameters:
- key (required)
- Testcases:
- No testcase defined.
Content File Source
::xo::library doc { Generic MessageRelay procs Provide means to publish a subscription key and let clients write to these keys. These functions are used e.g. by the chat. @creation-date 2019-02-23 @author Gustaf Neumann } namespace eval ::xo { nx::Class create ::xo::MessageRelay { # # Generic Message Relay class # :public method subscribe {key {-initmsg ""} {-mode default}} { # # Subscribe to a service identified by a key. # # @param key unique id for a (potentially new communication hub) # @param initmsg optional message to be sent, when subscription happens # @param mode optional mode # } :public method send_to_subscriber {key msg} { # # Send a message to a service identified by the key # (communication hub). # # @param key id for an existing communication hub # @param msg message to be sent # } :public method sweep {key} { # # Check existing subscriptions and clean stale ones. # # @param key key of the communication hub # } :public method can_be_used {} { # # Check, if a message relay can be used in the current # configuration. # return 1 } :method start_of_page {mode} { # # Compose reply header. # if {$mode eq "scripted"} { # # Scripted streaming relies on an infinitely long request, # providing chunks of javascript code conveying the # message. Widely supported e.g. also by Internet Explorer, # but not recommended on modern browsers. # set content_type "text/html;charset=utf-8" set encoding "Cache-Control: no-cache\r\nTransfer-Encoding: chunked\r\n" set body "<html><body>[string repeat { } 1024]\r\n" set body [format %x [string length $body]]\r\n$body\r\n return "HTTP/1.1 200 OK\r\nContent-type: $content_type\r\n$encoding\r\n$body" } else { # # Other modes will use Server Sent Events. # return [append _ \ "HTTP/1.1 200 OK\r\n" \ "Cache-Control: no-cache\r\n" \ "X-Accel-Buffering': no\r\n" \ "Content-type: text/event-stream\r\n" \ "\r\n"] } } :public method encode_message {mode msg} { # # Provide different "encoding" depending on the mode. Notice # that for one chat, multiple clients might have difference # modes, since the modes are determined at also by the # capabilities of the client browser. So the incoming message # has to be recoded multiple times. # set msg [encoding convertto utf-8 $msg] if {$mode eq "scripted"} { #::sec_handler_reset #ns_log notice "SEND data <$msg> encoded <$emsg>" set jsMsg [subst { <script nonce='[::security::csp::nonce]'> window.parent.postMessage($msg); </script> }] set msg [format %x [string length $jsMsg]]\r\n$jsMsg\r\n } else { set msg [string cat {data: } $msg \n\n] } #ns_log notice "#### [self] encode_message <$mode> returns <$msg>" return $msg } } } namespace eval ::xo::mr { # # Create a dummy message relay (which can be always used) # xo::MessageRelay create ::xo::mr::none { # # Dummy message relay, doing nothing. # } # # Message Relay based on bgdelivery. This interface works directly # on the socket and is therefore only useful for plain HTTP # connections. # xo::MessageRelay create ::xo::mr::bgdelivery { # # Message relay based on bgdelivery # :public object method subscribe {key {-initmsg ""} {-mode default} } { # # Subscribe to a messaging service using bgdelivery as the low # level transport. # ns_log notice "#### [self] subscribe <$key> mode <$mode>" set ch [ns_conn channel] thread::transfer [::bgdelivery get_tid] $ch # ::bgdelivery do ::Subscriber sweep $key ::bgdelivery do ::Subscriber new \ -channel $ch -key $key \ -user_id [ad_conn user_id] -mode $mode \ -start_of_page [:start_of_page $mode] } :public object method send_to_subscriber {key msg} { # # Send a message to the subscriber via bgdelivery # ns_log notice "#### [self] send_to_subscriber $key $msg" ::bgdelivery do -async ::Subscriber broadcast $key $msg } :public object method can_be_used {} { # # To use the bgdelivery serive, we require support from the web # server, an installed bgdelivery. This method does not work on # HTTPS, since this method writes to the raw sockets. # return [expr { [info commands ::thread::mutex] ne "" && [info commands ::bgdelivery] ne "" && (![ns_conn isconnected] || ![security::secure_conn_p]) }] } :public object method sweep {key} { # # Clean up messages for this key. This should handle potentially # stale operations. # ::bgdelivery do ::Subscriber sweep $key } } # # Message Relay based on ns_connchan. This interface works on the # full connection structure and can therefore be used for HTTP and # HTTPS connections. # xo::MessageRelay create ::xo::mr::connchan { # # Message relay based on ns_connchan # :object method cleanup {key handle} { catch {ns_connchan close $handle} catch {nsv_unset mr_connchan_$key $handle} } :public object method subscribe {key {-initmsg ""} {-mode ""} } { #ns_log notice "#### [self] subscribe $key mode $mode" # # Unplug the connection channel from the current connection # thread. The currently unplugged channels can be queried via # "ns_connchan list" # set handle [ns_connchan detach] # # should check and append # if {![nsv_exists mr_connchan_$key $handle]} { nsv_set mr_connchan_$key $handle $mode try { ns_connchan write $handle [:start_of_page $mode] } on error {errorMsg} { ns_log warning "message relay: write on <$key> failed: $errorMsg" :cleanup $key $handle } } else { ns_log warning "message relay: duplicate registration for <$key> attempted" } #::bgdelivery do ::Subscriber new \ # -channel $ch -key $key \ # -user_id [ad_conn user_id] -mode $mode } :public object method send_to_subscriber {key msg} { # # Write directly to the subscribers from the connection thread # via ns_connchan. It would be possible, to perform asynchronous # operations via "ns_connchan callback", which would be handled # in the background. Not sure, this is necessary. # #ns_log notice "#### [self] send_to_subscriber <[nsv_array names mr_connchan_$key]>" foreach handle [nsv_array names mr_connchan_$key] { try { set mode [nsv_get mr_connchan_$key $handle] ns_connchan write $handle [:encode_message $mode $msg] } on error {errorMsg} { ns_log warning "message relay: duplicate registration for <$key> attempted" :cleanup $key $handle } } } :public object method can_be_used {} { # # ns_connchan can be used on every recent NaviServer. # return [expr {[info commands ::ns_connchan] ne ""}] } :public object method sweep {key} { # # For the time being, do nothing. Since the chat is verbose on # logins/logouts, write operations will fail, in which case the # array is cleaned up. If this is not sufficient, probably a # "ns_connchan eof" operation would be useful. # } } } ::xo::library source_dependent # # Local variables: # mode: tcl # tcl-indent-level: 2 # indent-tabs-mode: nil # End:
![[i]](/resources/acs-subsite/ZoomIn16.gif)