diff --git a/pr/3069/docs/iroh_relay/client/fn.make_dangerous_client_config.html b/pr/3069/docs/iroh_relay/client/fn.make_dangerous_client_config.html index e08748703a..a51d3a13ce 100644 --- a/pr/3069/docs/iroh_relay/client/fn.make_dangerous_client_config.html +++ b/pr/3069/docs/iroh_relay/client/fn.make_dangerous_client_config.html @@ -1,3 +1,3 @@ -make_dangerous_client_config in iroh_relay::client - Rust
iroh_relay::client

Function make_dangerous_client_config

Source
pub fn make_dangerous_client_config() -> ClientConfig
Available on crate feature test-utils only.
Expand description

Creates a client config that trusts any servers without verifying their TLS certificate.

+make_dangerous_client_config in iroh_relay::client - Rust
iroh_relay::client

Function make_dangerous_client_config

Source
pub fn make_dangerous_client_config() -> ClientConfig
Available on crate feature test-utils only.
Expand description

Creates a client config that trusts any servers without verifying their TLS certificate.

Should be used for testing local relay setups only.

\ No newline at end of file diff --git a/pr/3069/docs/iroh_relay/client/index.html b/pr/3069/docs/iroh_relay/client/index.html index 8acae1a71c..e688abcf46 100644 --- a/pr/3069/docs/iroh_relay/client/index.html +++ b/pr/3069/docs/iroh_relay/client/index.html @@ -1,3 +1,3 @@ -iroh_relay::client - Rust
iroh_relay

Module client

Source
Expand description

Exposes Client, which allows to establish connections to a relay server.

+iroh_relay::client - Rust
iroh_relay

Module client

Source
Expand description

Exposes Client, which allows to establish connections to a relay server.

Based on tailscale/derp/derphttp/derphttp_client.go

Structs§

Enums§

Functions§

\ No newline at end of file diff --git a/pr/3069/docs/iroh_relay/client/struct.Client.html b/pr/3069/docs/iroh_relay/client/struct.Client.html index e76f4a6111..7a2a4afaa6 100644 --- a/pr/3069/docs/iroh_relay/client/struct.Client.html +++ b/pr/3069/docs/iroh_relay/client/struct.Client.html @@ -1,19 +1,19 @@ -Client in iroh_relay::client - Rust
iroh_relay::client

Struct Client

Source
pub struct Client { /* private fields */ }
Expand description

An HTTP Relay client.

+Client in iroh_relay::client - Rust
iroh_relay::client

Struct Client

Source
pub struct Client { /* private fields */ }
Expand description

An HTTP Relay client.

Cheaply clonable.

-

Implementations§

Source§

impl Client

Source

pub fn public_key(&self) -> PublicKey

The public key for this client

-
Source

pub async fn connect(&mut self) -> Result<(), ClientError>

Connects to a relay Server and returns the underlying relay connection.

+

Implementations§

Source§

impl Client

Source

pub async fn recv(&mut self) -> Option<Result<ReceivedMessage, ClientError>>

Reads a message from the server.

+
Source

pub async fn connect(&mut self) -> Result<(), ClientError>

Connects to a relay Server and returns the underlying relay connection.

Returns ClientError::Closed if the Client is closed.

If there is already an active relay connection, returns Ok(()).

-
Source

pub async fn note_preferred(&mut self, is_preferred: bool)

Let the server know that this client is the preferred client

-
Source

pub fn local_addr(&self) -> Option<SocketAddr>

Get the local addr of the connection. If there is no current underlying relay connection +

Source

pub async fn note_preferred(&mut self, is_preferred: bool)

Let the server know that this client is the preferred client

+
Source

pub fn local_addr(&self) -> Option<SocketAddr>

Get the local addr of the connection. If there is no current underlying relay connection or the Client is closed, returns None.

-
Source

pub async fn start_ping( +

Source

pub async fn start_ping( &mut self, ) -> Result<impl Future<Output = Result<Duration, ClientError>> + Send + Sync + 'static, ClientError>

Send a ping to the server. Return once we get an expected pong.

This has a built-in timeout crate::defaults::timeouts::PING_TIMEOUT.

The caller must process the received ping using finish_ping.

-
Source

pub fn finish_ping(&mut self, ping: [u8; 8])

Finish a ping message

-
Source

pub async fn send( +

Source

pub fn finish_ping(&mut self, ping: [u8; 8])

Finish a ping message

+
Source

pub async fn send( &mut self, remote_node: NodeId, payload: Bytes, @@ -22,17 +22,13 @@ send the message.

If there is an error sending the packet, it closes the underlying relay connection before returning.

-

Source

pub async fn send_pong(&mut self, data: [u8; 8]) -> Result<(), ClientError>

Send a pong back to the server.

+
Source

pub async fn send_pong(&mut self, data: [u8; 8]) -> Result<(), ClientError>

Send a pong back to the server.

If there is no underlying active relay connection, it creates one before attempting to send the pong message.

If there is an error sending pong, it closes the underlying relay connection before returning.

-
Source

pub async fn close(self)

Close the http relay connection.

-
Source

pub fn is_connected(&self) -> bool

Returns true if the underlying relay connection is established.

-
Source

pub async fn recv(&mut self) -> Option<Result<ReceivedMessage, ClientError>>

Reads a message from the server.

-
Source

pub async fn close_for_reconnect(&mut self)

Disconnect the http relay connection.

-

Closes the underlying relay connection. The next time the client takes some action that -requires a connection, it will call connect.

+
Source

pub async fn close(self)

Close the http relay connection.

+
Source

pub fn is_connected(&self) -> bool

Returns true if the underlying relay connection is established.

Trait Implementations§

Source§

impl Debug for Client

Source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where diff --git a/pr/3069/docs/iroh_relay/client/struct.ClientBuilder.html b/pr/3069/docs/iroh_relay/client/struct.ClientBuilder.html index 039b106046..2955758108 100644 --- a/pr/3069/docs/iroh_relay/client/struct.ClientBuilder.html +++ b/pr/3069/docs/iroh_relay/client/struct.ClientBuilder.html @@ -1,23 +1,23 @@ -ClientBuilder in iroh_relay::client - Rust
iroh_relay::client

Struct ClientBuilder

Source
pub struct ClientBuilder { /* private fields */ }
Expand description

Build a Client.

-

Implementations§

Source§

impl ClientBuilder

Source

pub fn new(url: impl Into<RelayUrl>) -> Self

Create a new ClientBuilder

-
Source

pub fn server_url(self, url: impl Into<RelayUrl>) -> Self

Sets the server url

-
Source

pub fn protocol(self, protocol: Protocol) -> Self

Sets whether to connect to the relay via websockets or not. +ClientBuilder in iroh_relay::client - Rust

iroh_relay::client

Struct ClientBuilder

Source
pub struct ClientBuilder { /* private fields */ }
Expand description

Build a Client.

+

Implementations§

Source§

impl ClientBuilder

Source

pub fn new(url: impl Into<RelayUrl>) -> Self

Create a new ClientBuilder

+
Source

pub fn server_url(self, url: impl Into<RelayUrl>) -> Self

Sets the server url

+
Source

pub fn protocol(self, protocol: Protocol) -> Self

Sets whether to connect to the relay via websockets or not. Set to use non-websocket, normal relaying by default.

-
Source

pub fn address_family_selector<S>(self, selector: S) -> Self
where +

Source

pub fn address_family_selector<S>(self, selector: S) -> Self
where S: Fn() -> bool + Send + Sync + 'static,

Returns if we should prefer ipv6 it replaces the relayhttp.AddressFamilySelector we pass It provides the hint as to whether in an IPv4-vs-IPv6 race that IPv4 should be held back a bit to give IPv6 a better-than-50/50 chance of winning. We only return true when we believe IPv6 will work anyway, so we don’t artificially delay the connection speed.

-
Source

pub fn is_prober(self, is: bool) -> Self

Indicates this client is a prober

-
Source

pub fn insecure_skip_cert_verify(self, skip: bool) -> Self

Available on crate feature test-utils only.

Skip the verification of the relay server’s SSL certificates.

+
Source

pub fn is_prober(self, is: bool) -> Self

Indicates this client is a prober

+
Source

pub fn insecure_skip_cert_verify(self, skip: bool) -> Self

Available on crate feature test-utils only.

Skip the verification of the relay server’s SSL certificates.

May only be used in tests.

-
Source

pub fn proxy_url(self, url: Url) -> Self

Set an explicit proxy url to proxy all HTTP(S) traffic through.

-
Source

pub fn key_cache_capacity(self, capacity: usize) -> Self

Set the capacity of the cache for public keys.

-
Source

pub async fn build(self, key: SecretKey, dns_resolver: DnsResolver) -> Client

Build the Client

-
Source

pub fn server_public_key(self, server_public_key: PublicKey) -> Self

The expected PublicKey of the relay server we are connecting to.

-

Trait Implementations§

Source§

impl Debug for ClientBuilder

Source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where +

Source

pub fn proxy_url(self, url: Url) -> Self

Set an explicit proxy url to proxy all HTTP(S) traffic through.

+
Source

pub fn key_cache_capacity(self, capacity: usize) -> Self

Set the capacity of the cache for public keys.

+
Source

pub async fn build(self, key: SecretKey, dns_resolver: DnsResolver) -> Client

Build the Client

+
Source

pub fn server_public_key(self, server_public_key: PublicKey) -> Self

The expected PublicKey of the relay server we are connecting to.

+

Trait Implementations§

Source§

impl Debug for ClientBuilder

Source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( diff --git a/pr/3069/docs/search-index.js b/pr/3069/docs/search-index.js index 658ec845a3..eb390956d0 100644 --- a/pr/3069/docs/search-index.js +++ b/pr/3069/docs/search-index.js @@ -1,4 +1,4 @@ -var searchIndex = new Map(JSON.parse('[["bulk",{"t":"HHHHH","n":["collect_and_print","main","run_iroh","run_quinn","run_s2n"],"q":[[0,"bulk"],[5,"core::option"],[6,"struct_iterable_internal"],[7,"iroh_bench"],[8,"anyhow"],[9,"iroh_bench::s2n"]],"i":"`````","f":"{{{d{b}}{f{{d{c}}}}}hj}{{}h}{l{{n{h}}}}0{A`{{n{h}}}}","D":"`","p":[[1,"str"],[1,"reference",null,null,1],[6,"Option",5,null,1],[1,"unit"],[10,"Iterable",6],[5,"Opt",7],[8,"Result",8],[5,"Opt",9]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUAAQAAAAUA","P":[[0,""],[1,""]]}],["iroh",{"t":"PPEPGTFIFFEFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNOCCNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNCNNONONNNNNNNNNOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNCNNSSSSSCCSSSHHHHSSHHHFKFNNNNNNNNNNNNNNCNNNNNNNNNNNNNNOCOCONNNNCNNNNNNNNNNNFSSNNNNNNNNNNNNNNNNFSNNNNNNNNNNNNNNNNNSSSSFFFNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTFNNNNNNNNNNNNNNNNNNNNNNIKHMNMNMNMNMNMNMNMNMNMNCHPSGFPFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNONONNNNNNHNNNNNNNNNNNNNTTFFFFKPFPFTTTPFPFPPFFFPGPPPPPFGGKKFKPPPFFGPPPSFFTTTPFKTTPFFTPPTTPFTTPPFFTFPPPPFGPGGFPPGFPPGFTTPGFFGPPGFPPTPPPFFPFPFPPFFPFGFFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNOOOMNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNONONOONOOOONNNONNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNONNNNNNNNNNNNNNNOOONOOONNNOOOHNNNONNNOOONNNNNNNNOONNOONONMNMNMNNNNNNNOOONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNONNNNNNNNOONMNNONMNNNNNNOONNNNNNNNNNNNNNNNNNNONMNNONOONOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNOOFFFFNNNNOOOOOOOOONNNNNNNNOONNNNNNNNNNNNOOONNNNNNNNNNNNOOOONNNNONNNNONNNNNNNNONNNNNNNNNNNNOOONNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNOOOOOOONNNNOKFFNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNHNNNNNNNNNNNNNNNNOONONHHHNNNNNNNNNFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Decode","DecodeInvalidLength","Endpoint","Key","KeyParsingError","LENGTH","NodeAddr","NodeId","PublicKey","RelayMap","RelayMode","RelayNode","RelayUrl","RelayUrlParseError","SecretKey","__clone_box","","","","","","as_bytes","as_ref","borrow","","","","","","","","","borrow_mut","","","","","","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","cmp","","","","compare","","","","contains_node","default_from_node","defaults","deref","","","","","","","","","deref_mut","","","","","","","","deserialize","","","","","direct_addresses","","discovery","dns","drop","","","","","","","","empty","endpoint","eq","","","","","equivalent","","","","","","","","","","","","","","","fmt","","","","","","","","","","","","","","","fmt_short","from","","","","","","","","","","","","","","","","","","","","from_bytes","","from_nodes","from_parts","from_ref","","","","","","from_str","","","from_url","generate","get_node","hash","","init","","","","","","","","into","","","","","","","","is_empty","","len","metrics","new","node_id","nodes","partial_cmp","","","","protocol","public","","quic","relay_url","","secret","serialize","","","","","sign","source","","stun_only","stun_port","test_utils","to_bytes","to_owned","","","","","","to_string","","","","","","","try_from","","","","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","url","urls","verify","vzip","","","","","","","","watchable","with_direct_addresses","with_relay_url","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_METRICS_PORT","DEFAULT_RELAY_QUIC_PORT","DEFAULT_STUN_PORT","prod","staging","AP_RELAY_HOSTNAME","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_ap_relay_node","default_eu_relay_node","default_na_relay_node","default_relay_map","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_eu_relay_node","default_na_relay_node","default_relay_map","ConcurrentDiscovery","Discovery","DiscoveryItem","__clone_box","add","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","default","deref","","deref_mut","","dns","drop","","empty","fmt","","from","","","from_ref","from_services","init","","into","","last_updated","local_swarm_discovery","node_addr","pkarr","provenance","publish","","resolve","","static_provider","subscribe","","to_owned","try_from","","try_into","","type_id","","vzip","","DnsDiscovery","N0_DNS_NODE_ORIGIN_PROD","N0_DNS_NODE_ORIGIN_STAGING","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","init","into","n0_dns","new","resolve","try_from","try_into","type_id","vzip","LocalSwarmDiscovery","NAME","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","init","into","new","publish","resolve","subscribe","try_from","try_into","type_id","vzip","DEFAULT_PKARR_TTL","DEFAULT_REPUBLISH_INTERVAL","N0_DNS_PKARR_RELAY_PROD","N0_DNS_PKARR_RELAY_STAGING","PkarrPublisher","PkarrRelayClient","PkarrResolver","__clone_box","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","dht","drop","","","","fmt","","","from","","","from_ref","","","init","","","into","","","n0_dns","","new","","","publish","","resolve","","to_owned","","","try_from","","","try_into","","","type_id","","","update_addr_info","vzip","","","with_options","Builder","DhtDiscovery","__clone_box","borrow","","borrow_mut","","build","builder","client","clone","clone_into","clone_to_uninit","default","","deref","","deref_mut","","dht","drop","","fmt","","from","","from_ref","include_direct_addresses","init","","initial_publish_delay","into","","n0_dns_pkarr_relay","pkarr_relay","publish","republish_delay","resolve","secret_key","to_owned","try_from","","try_into","","ttl","type_id","","vzip","","PROVENANCE","StaticProvider","add_node_addr","borrow","borrow_mut","default","deref","deref_mut","drop","fmt","from","from_node_addrs","get_node_addr","init","into","new","publish","remove_node_addr","resolve","set_node_addr","try_from","try_into","type_id","vzip","DnsResolver","ResolverExt","default_resolver","lookup_by_id","","lookup_by_id_staggered","","lookup_by_name","","lookup_by_name_staggered","","lookup_ipv4","","lookup_ipv4_ipv6","","lookup_ipv4_ipv6_staggered","","lookup_ipv4_staggered","","lookup_ipv6","","lookup_ipv6_staggered","","node_info","resolver","Addr","IROH_TXT_NAME","IrohAttr","NodeInfo","Relay","TxtAttrs","__clone_box","as_ref","attrs","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","cmp","compare","deref","","","deref_mut","","","direct_addresses","drop","","","eq","","equivalent","","","","","","fmt","","","","from","","","","","","from_hickory_records","","from_parts","from_pkarr_signed_packet","","from_ref","from_str","from_strings","from_z32","hash","init","","","into","","","lookup_by_id","lookup_by_name","new","node_id","","partial_cmp","relay_url","to_hickory_records","","to_owned","to_pkarr_signed_packet","","to_string","to_z32","try_from","","","","try_into","","","type_id","","","vzip","","","AEAD_LIMIT_REACHED","APPLICATION_ERROR","Accept","AcceptBi","AcceptUni","AckFrequencyConfig","AeadKey","App","ApplicationClose","ApplicationClosed","Builder","CONNECTION_ID_LIMIT_ERROR","CONNECTION_REFUSED","CRYPTO_BUFFER_EXCEEDED","CallMeMaybe","Chunk","CidsExhausted","ClosedStream","","","Connecting","Connection","ConnectionClose","ConnectionClosed","ConnectionError","ConnectionLost","","","","","ConnectionStats","ConnectionType","ControlMsg","Controller","ControllerFactory","CryptoError","CryptoServerConfig","Custom","Default","Direct","DirectAddr","DirectAddrInfo","DirectAddrType","Disabled","","Discovery","ENV_FORCE_STAGING_RELAYS","Endpoint","ExportKeyingMaterialError","FINAL_SIZE_ERROR","FLOW_CONTROL_ERROR","FRAME_ENCODING_ERROR","FinishedEarly","FrameStats","HandshakeTokenKey","INTERNAL_ERROR","INVALID_TOKEN","IllegalOrderedRead","Incoming","IncomingFuture","KEY_UPDATE_ERROR","Local","LocallyClosed","MAX","MAX_SIZE","Mixed","MtuDiscoveryConfig","NO_ERROR","NO_VIABLE_PATH","NamedApp","None","OpenBi","OpenUni","PROTOCOL_VIOLATION","PathStats","Ping","Pong","Portmapped","Read","ReadDatagram","ReadError","","ReadExactError","ReadToEndError","RecvStream","Relay","","RelayMode","RemoteInfo","Reset","","ResetError","RetryError","STREAM_LIMIT_ERROR","STREAM_STATE_ERROR","Saved","SendDatagramError","SendStream","ServerConfig","Source","Staging","Stopped","StoppedError","StreamId","Stun","Stun4LocalPort","TRANSPORT_PARAMETER_ERROR","TimedOut","TooLarge","TooLong","TransportConfig","TransportError","","TransportErrorCode","Udp","UdpStats","Unknown","UnsupportedByPeer","UnsupportedVersion","VarInt","VersionMismatch","WeakConnectionHandle","WriteError","Written","ZeroRttAccepted","ZeroRttRejected","","","","__clone_box","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","accept","","accept_bi","accept_uni","accept_with","ack_eliciting_threshold","ack_frequency","ack_frequency_config","acks","add_discovery","add_node_addr","add_node_addr_with_source","addr","","addrs","aead_from_hkdf","allow_spin","alpn","alpns","bind","bind_addr_v4","bind_addr_v6","black_hole_cooldown","black_holes_detected","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bound_sockets","build","builder","bytes","","","chunks","clear_discovery","clone","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_box","clone_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","close","","close_reason","closed","cmp","","","","code","compare","","","","congestion_controller_factory","congestion_events","congestion_state","conn_type","","connect","connection_close","crypto","","","crypto_buffer_size","current_mtu","cwnd","data_blocked","datagram","datagram_receive_buffer_size","datagram_send_buffer_size","datagram_send_buffer_space","datagrams","default","","","","","","","","","","","default_relay_mode","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deserialize","","","","","dir","direct_addresses","discovery","","discovery_dht","discovery_local_network","discovery_n0","dns_resolver","","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","enable_segmentation_offload","eq","","","","","","","","","","","","","","","","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","error_code","","export_keying_material","finish","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","force_staging_infra","frame","frame_rx","frame_tx","frame_type","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_ref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_u32","from_u64","from_u64_unchecked","get_remote_node_id","handshake_data","","handshake_done","has_send_address","hash","","","","","home_relay","id","","ignore","immediate_ack","incoming_buffer_size","incoming_buffer_size_total","index","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","initial_keys","initial_mtu","initial_rtt","initial_window","initiator","insecure_skip_relay_cert_verify","interval","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_0rtt","into_any","into_future","","","","","","","","","","into_incoming","into_inner","ios","is_0rtt","is_alive","is_closed","join","","","","","","","","","keep_alive_interval","keylog","known_nodes","last_alive","last_control","last_payload","last_received","last_used","latency","","local_ip","","","lost_bytes","lost_packets","lost_plpmtud_probes","make_server_config","max_ack_delay","max_concurrent_bidi_streams","max_concurrent_uni_streams","max_data","max_datagram_size","max_idle_timeout","max_incoming","max_stream_data","max_streams_bidi","max_streams_uni","migration","min_mtu","minimum_change","mtu_discovery_config","network_change","network_path_changed","new","","new_connection_id","new_token","node_addr","node_id","","observed_addr","observed_external_addr","offset","on_ack","on_congestion_event","on_end_acks","on_mtu_update","on_sent","open","open_bi","open_uni","packet_threshold","partial_cmp","","","","path","path_challenge","path_response","peer_identity","persistent_congestion_threshold","ping","poll","","","","","","","","","poll_flush","poll_read","","poll_shutdown","poll_write","","preferred_address_v4","preferred_address_v6","priority","proxy_from_env","proxy_url","race","","","","","","","","","read","read_chunk","read_chunks","read_datagram","read_exact","read_to_end","reason","","","receive_observed_address_reports","receive_window","received_reset","refuse","relay_map","relay_mode","relay_url","remote_address","","","remote_address_validated","remote_info","remote_info_iter","reordering_threshold","reset","reset_stream","retire_connection_id","retry","retry_tag","retry_token_lifetime","rtt","","saturating_add","seal","secret_key","","send_datagram","send_datagram_wait","send_observed_address_reports","send_window","sent_packets","sent_plpmtud_probes","serialize","","","","","set_alpns","set_max_concurrent_bi_streams","set_max_concurrent_uni_streams","set_priority","set_receive_window","source","","","","","","","","sources","","stable_id","start_session","stats","stop","stop_sending","stopped","stream","stream_data_blocked","stream_receive_window","streams_blocked_bidi","streams_blocked_uni","time_threshold","to_owned","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","to_string","","","","","","","","","","","","","","","","","","","","token_key","transport","transport_config","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_poll","","","","","","","typ","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","udp_rx","udp_tx","upper_bound","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","weak_handle","window","with_crypto","with_single_cert","write","write_all","write_all_chunks","write_chunk","write_chunks","name","","MagicsockMetrics","NetReportMetrics","PortmapMetrics","RelayMetrics","__clone_box","","","","accepts","actor_link_change","actor_tick_direct_addr_heartbeat","actor_tick_direct_addr_update_receiver","actor_tick_main","actor_tick_msg","actor_tick_other","actor_tick_portmap_changed","actor_tick_re_stun","borrow","","","","borrow_mut","","","","bytes_recv","bytes_sent","clone","","","","clone_into","","","","clone_to_uninit","","","","connection_became_direct","connection_handshake_success","conns_rx_ratelimited_total","default","","","","deref","","","","deref_mut","","","","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","drop","","","","external_address_updated","fmt","","","","frames_rx_ratelimited_total","from","","","","from_ref","","","","got_ping","init","","","","into","","","","iter","","","","local_port_updates","mapping_attempts","mapping_failures","name","","","","nodes_contacted","nodes_contacted_directly","num_direct_conns_added","num_direct_conns_removed","num_relay_conns_added","num_relay_conns_removed","other_packets_dropped","other_packets_recv","other_packets_sent","pcp_available","pcp_probes","probes_started","re_stun_calls","recv_data_ipv4","recv_data_ipv6","recv_data_relay","recv_datagrams","recv_disco_bad_key","recv_disco_bad_parse","recv_disco_call_me_maybe","recv_disco_call_me_maybe_bad_disco","recv_disco_ping","recv_disco_pong","recv_disco_relay","recv_disco_udp","recv_gro_datagrams","relay_accepts","relay_home_change","reports","reports_full","send_data","send_data_network_down","send_disco_relay","send_disco_udp","send_ipv4","send_ipv6","send_packets_dropped","send_packets_recv","send_packets_sent","send_relay","send_relay_error","sent_disco_call_me_maybe","sent_disco_ping","sent_disco_pong","sent_disco_relay","sent_disco_udp","sent_pong","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","unique_client_keys","unknown_frames","update_direct_addrs","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","","","","websocket_accepts","ProtocolHandler","Router","RouterBuilder","__clone_box","accept","","borrow","","borrow_mut","","builder","clone","clone_into","clone_to_uninit","deref","","deref_mut","","drop","","endpoint","","fmt","","from","","from_ref","init","","into","","is_shutdown","new","shutdown","","spawn","to_owned","try_from","","try_into","","type_id","","vzip","","CleanupDropGuard","DnsPkarrServer","borrow","","borrow_mut","","create_dns_resolver","deref","","deref_mut","","discovery","dns_resolver","drop","","fmt","","from","","init","","into","","nameserver","node_origin","on_node","pkarr_url","run","run_relay_server","run_relay_server_with","run_relay_server_with_stun","run_with_origin","try_from","","try_into","","type_id","","vzip","","Disconnected","WatchInitializedFut","WatchNextFut","Watchable","Watcher","WatcherStream","__clone_box","","","borrow","","","","","","borrow_mut","","","","","","chain","clone","","","clone_into","","","clone_to_uninit","","","default","deref","","","","","","deref_mut","","","","","","drop","","","","","","fmt","","","","","","","from","","","","","","from_ref","","","get","","init","","","","","","initialized","into","","","","","","into_future","","into_stream","join","","merge","new","poll","","poll_next","race","","ratelimit_stream","ratelimit_stream_with_jitter","set","stream","stream_updates_only","to_owned","","","to_string","try_from","","","","","","try_into","","","","","","try_poll","","try_poll_next","type_id","","","","","","updated","vzip","","","","","","watch","zip"],"q":[[0,"iroh"],[279,"iroh::defaults"],[286,"iroh::defaults::prod"],[293,"iroh::defaults::staging"],[298,"iroh::discovery"],[351,"iroh::discovery::dns"],[370,"iroh::discovery::local_swarm_discovery"],[389,"iroh::discovery::pkarr"],[466,"iroh::discovery::pkarr::dht"],[515,"iroh::discovery::static_provider"],[539,"iroh::dns"],[564,"iroh::dns::node_info"],[655,"iroh::endpoint"],[2181,"iroh::endpoint::Source"],[2183,"iroh::metrics"],[2359,"iroh::protocol"],[2404,"iroh::test_utils"],[2444,"iroh::watchable"],[2576,"dyn_clone::sealed"],[2577,"iroh_base::key"],[2578,"iroh_base::node_addr"],[2579,"iroh_base::relay_url"],[2580,"iroh_relay::relay_map"],[2581,"core::cmp"],[2582,"core::result"],[2583,"serde::de"],[2584,"core::net::socket_addr"],[2585,"core::iter::traits::iterator"],[2586,"core::fmt"],[2587,"alloc::string"],[2588,"ed25519_dalek::verifying"],[2589,"signature::error"],[2590,"data_encoding"],[2591,"ed25519_dalek::signing"],[2592,"core::option"],[2593,"iroh_base::ticket::node"],[2594,"iroh::magicsock::node_map::node_state"],[2595,"url"],[2596,"url::parser"],[2597,"anyhow"],[2598,"alloc::sync"],[2599,"core::convert"],[2600,"core::iter::traits::collect"],[2601,"rand_core"],[2602,"core::hash"],[2603,"serde::ser"],[2604,"ed25519"],[2605,"core::error"],[2606,"core::any"],[2607,"alloc::boxed"],[2608,"alloc::vec"],[2609,"alloc::collections::btree::set"],[2610,"futures_lite::stream"],[2611,"pkarr::signed_packet"],[2612,"futures_core::stream"],[2613,"core::time"],[2614,"pkarr::client"],[2615,"core::future::future"],[2616,"core::net::ip_addr"],[2617,"hickory_proto::rr::domain::name"],[2618,"core::clone"],[2619,"hickory_resolver::resolver"],[2620,"alloc::collections::btree::map"],[2621,"core::str::traits"],[2622,"hickory_proto::rr::resource"],[2623,"iroh_quinn_proto::connection"],[2624,"iroh_quinn::connection"],[2625,"iroh_quinn_proto::config"],[2626,"iroh_quinn_proto::varint"],[2627,"core::ops::function"],[2628,"core::marker"],[2629,"iroh_quinn_proto::crypto"],[2630,"iroh_quinn_proto::congestion"],[2631,"std::time"],[2632,"iroh_quinn::recv_stream"],[2633,"iroh_quinn::send_stream"],[2634,"iroh_quinn_proto::connection::stats"],[2635,"iroh_quinn_proto::connection::streams::send"],[2636,"iroh_quinn_proto::connection::streams"],[2637,"iroh::magicsock::node_map"],[2638,"iroh_quinn_proto::frame"],[2639,"iroh::magicsock"],[2640,"iroh_quinn_proto"],[2641,"iroh_quinn_proto::connection::assembler"],[2642,"iroh_quinn::incoming"],[2643,"iroh_quinn_proto::connection::streams::recv"],[2644,"ring::error"],[2645,"iroh_quinn_proto::transport_parameters"],[2646,"iroh_quinn_proto::shared"],[2647,"futures_concurrency::future::join::tuple"],[2648,"core::future::into_future"],[2649,"tokio::sync::watch"],[2650,"iroh_quinn_proto::connection::paths"],[2651,"core::pin"],[2652,"core::task::wake"],[2653,"core::task::poll"],[2654,"std::io::error"],[2655,"tokio::io::read_buf"],[2656,"futures_concurrency::future::race::tuple"],[2657,"bytes::bytes"],[2658,"rustls_pki_types"],[2659,"rustls::error"],[2660,"alloc::vec::into_iter"],[2661,"futures_lite::future"],[2662,"iroh::test_utils::dns_and_pkarr_servers"],[2663,"iroh_relay::server"],[2664,"futures_concurrency::stream::chain::tuple"],[2665,"futures_concurrency::stream::into_stream"],[2666,"core::default"],[2667,"futures_concurrency::stream::merge::tuple"],[2668,"governor::state::direct"],[2669,"governor::state"],[2670,"governor::state::direct::streams"],[2671,"governor::clock::with_std"],[2672,"governor::middleware"],[2673,"governor::jitter"],[2674,"futures_concurrency::stream::zip::tuple"],[2675,"iroh_relay::defaults"],[2676,"iroh::test_utils::dns_server"]],"i":"Cb0`0`h`````````0AbAdAfAhAj55556432Cd21675430216543216543216543216431643122`675433021675430216543144``675430212`643216664443332221116677554330022116667775554444443300216524654321653252636754302167543021422`4426431`6514456543157011`5654321675302166675543021675430216754302112667543021`44``````````````````````FhFd101011101010`100101001010101`1`1Ff101`01221212121```Gj000000000000000``Gl0000000000000000```````GnH`Hb210210210210210210210`221021021021021021021210201021021021021022102``Hn0Hl10010111101010010101010100100010101101001010Ib`0000000000000000000000```IfId101010101010101010``Jf```0`Df1Jh21021011122210210121021222111221021110010010120`22102100010121101102`2210210210210A@n0`````A@f`Kn`222Ol`1`NjO````3`Nf2Nl2Ob```````AAf0A@b```419```:::Nn``;;7``;AAb:Lj03`==<3``=`::1Nh``3```4=``:<``>>=````59``22><80``<`=`28``<````:796L`91;84:72OdOfOhOjOlOnA@`Dh=A@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAf1KjL`01=OfLl1Ln66On:DhMf4Kl4444MnOhADd:AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAf5N`6AB`OdA@`0:L`NfNhNjNlNnO`ObLj:OfOhOjOlOn>DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfNdL`NfNhNjNlNnO`ObLjOdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfL`NfNhNjNlNnO`ObLjOdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfL`200Lj65480654LlOh35Dh6Of;0?32200335Od45013OjA@`A@bLhMnLn`ADd=AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfOlOnDhA@bA@f<:;:;;;;:ADdL`AEdAEbLdLbAElABdNfABfAAl0NhNjNlNnAAn0O`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfLlNfNhNjNlNnO`ObLjAB`OlOnA@`DhA@bA@dA@fKnABbA@hA@jA@lA@nAA`AAbAAdAAfNf00Nh00Nj00Nl00Nn00O`00Ob00Lj00AB`00Ol00On00A@`00Dh00A@b00A@d00A@f00Kn00ABb00A@h00A@j00A@l00A@n00AA`00AAb00AAd00AAf0076L`AAn1ABdNf0ABf0AAlNh0Nj0Nl0Nn08O`0Ob0LlLj0AB`OdOfOhOjOl0OnA@`DhA@b0A@d0A@f0Kn0LhMnLfABbABhABjA@h0A@j0A@l0A@n0AA`AAb0AAd0LnGbKhKjABlKlAAf`;Oj0>ADdL`AEdAEbLdLbAElABdNf0ABfAAlNh0Nj000Nl0Nn0AAnO`000Ob0LlLj0000AB`OdOfOhOjOlOnA@`DhA@bA@dA@fKn00LhMnLfABbABh0ABjA@h0A@jA@l000A@nAA`AAbAAd0LnGbKhKjABlKlAAfL`NfNhNjNlNnO`ObLjOdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfLj00`L`KlOfDh4A@f:987AAlAAnKj5Lf0?1AAd33??837AB`Nd0000Mh::>LjAA`AAb6Oj::>Ll;ADdAEdAEbLdLbAElKhABlKlAAnAAl0111Lf02Ln0<;:987654222L`33A@hA@jA@lLl07KjAAf7Dh72<2Gb0Lh=Of05ACl=;OhLjMh?6>>::22OlOn9A@bA@f:L`0AAn1NfNhNjNlNnO`ObKnDh=:ACl;AAlOf<00Ll110><;:9876LjOd3OhOjOlOnA@`;A@bA@dA@f?LhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfNfABfNhNjNlNnO`ObLjOlA@bA@dA@fKnA@hA@jA@lA@nAAbAAdLf00LnADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLj000AB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfAEdAEbLdLbAEl76>ADdL`65432ABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfOj0MnADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfL`NdLf0AAn0000AKjAKl````AGhAGjAGlAGn011111111321032100032103210321011032103210321000003210332100321032100321032103210333321011111100033311111111111111012211111100011111110222223210321032103210001333332100```AHjAHbAHf202022222020202020202202020120220202020``AHnAHl10`101000101010101000000```010101010``````AIjAAhAIl21AJ`AJb2AJd542130354354354355421305421305421305421300542130543545421304542130213213521321335445430542130542130213542130454213053","f":"```````````````{{bd}f}00000{{{b{h}}}{{b{{l{j}}}}}}{{{b{h}}}{{b{{n{j}}}}}}1{b{{b{c}}}{}}0000000{{{b{A`}}}{{b{A`c}}}{}}0000000{{{b{h}}}h}{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{{b{Af}}}Af}{{{b{Ah}}}Ah}{{{b{Aj}}}Aj}{{b{b{A`c}}}f{}}00000{{bj}f}00000{{{b{h}}{b{h}}}Al}{{{b{Ad}}{b{Ad}}}Al}{{{b{Af}}{b{Af}}}Al}{{{b{Aj}}{b{Aj}}}Al}{{b{b{c}}}Al{}}000{{{b{Ah}}{b{Af}}}An}{{AfB`}Ah}`{Bb{{b{c}}}{}}0000{{{b{Af}}}b}111{Bb{{b{A`c}}}{}}0000000{c{{Bd{h}}}Bf}{c{{Bd{Ab}}}Bf}{c{{Bd{Ad}}}Bf}{c{{Bd{Af}}}Bf}{c{{Bd{Aj}}}Bf}{{{b{Ad}}}{{`{{Bl{}{{Bh{{b{Bj}}}}}}}}}}```{Bbf}0000000{{}Ah}`{{{b{h}}{b{h}}}An}{{{b{Ad}}{b{Ad}}}An}{{{b{Af}}{b{Af}}}An}{{{b{Ah}}{b{Ah}}}An}{{{b{Aj}}{b{Aj}}}An}{{b{b{c}}}An{}}00000000000000{{{b{h}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Cb}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ab}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ad}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Af}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Cd}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ah}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Aj}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{h}}}Cf}{Chh}{cc{}}{CjCb}1{ClCb}{{{l{j}}}Ab}3{CnAb}4{hAd}{{{Db{h{D`{Af}}{b{{n{Bj}}}}}}}Ad}{DdAd}{DfAd}{DhAd}9{DjAf}:{DlCd};;{{{b{{l{j}}}}}{{Bd{hCj}}}}{{{b{{l{j}}}}}Ab}{e{{Bd{AhDn}}}{{Eb{{E`{Aj}}}}}{{Ed{}{{Bh{c}}}}}}{{h{D`{Af}}c}Ad{{Ed{}{{Bh{Bj}}}}}}{{{b{c}}}c{}}00000{{{b{Ef}}}{{Bd{h}}}}{{{b{Ef}}}{{Bd{Ab}}}}{{{b{Ef}}}{{Bd{Af}}}}{AfAh}{cAbEh}{{{b{Ah}}{b{Af}}}{{D`{{b{{E`{Aj}}}}}}}}{{{b{h}}{b{A`c}}}fEj}{{{b{Af}}{b{A`c}}}fEj}{{}Bb}0000000{{}c{}}0000000{{{b{Ad}}}An}{{{b{Ah}}}An}{{{b{Ah}}}Bb}`{hAd}`{{{b{Ah}}}{{`{{Bl{}{{Bh{{b{{E`{Aj}}}}}}}}}}}}{{{b{h}}{b{h}}}{{D`{Al}}}}{{{b{Ad}}{b{Ad}}}{{D`{Al}}}}{{{b{Af}}{b{Af}}}{{D`{Al}}}}{{{b{Aj}}{b{Aj}}}{{D`{Al}}}}`{{{b{h}}}Ch}{{{b{Ab}}}h}`{{{b{Ad}}}{{D`{{b{Af}}}}}}`{{{b{Ab}}}{{b{Cn}}}}{{{b{h}}c}BdEl}{{{b{Ab}}c}BdEl}{{{b{Ad}}c}BdEl}{{{b{Af}}c}BdEl}{{{b{Aj}}c}BdEl}{{{b{Ab}}{b{{n{j}}}}}En}{{{b{Cb}}}{{D`{{b{F`}}}}}}{{{b{Cd}}}{{D`{{b{F`}}}}}}```{{{b{Ab}}}{{l{j}}}}{bc{}}00000{bCf}000000{c{{Bd{e}}}{}{}}{{{b{{n{j}}}}}{{Bd{h}}}}{{{b{{l{j}}}}}{{Bd{h}}}}22{{{b{{n{j}}}}}{{Bd{Ab}}}}33333{{}{{Bd{c}}}{}}0000000{bFb}0000000`{{{b{Ah}}}{{`{{Bl{}{{Bh{{b{Af}}}}}}}}}}{{{b{h}}{b{{n{j}}}}{b{En}}}{{Bd{fCj}}}}{{}c{}}0000000`{{Adc}Ad{{Ed{}{{Bh{Bj}}}}}}{{AdAf}Ad}``````````{{}Aj}00{{}Ah}``110```{{bd}f}{{{b{A`Fd}}c}fFf}{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{Fh}}}Fh}{{b{b{A`c}}}f{}}{{bj}f}{{}Fd}{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0`{Bbf}03{{{b{Fh}}{b{A`Bn}}}Fj}{{{b{Fd}}{b{A`Bn}}}Fj}{cc{}}0{cFd{{Ed{}{{Bh{{Fl{Ff}}}}}}}}{{{b{c}}}c{}}{{{Fn{{Fl{Ff}}}}}Fd}{{}Bb}0{{}c{}}0`````{{{b{Ff}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Fd}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Ff}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{{b{Fd}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}`{{{b{Ff}}}{{D`{{Gh{Fh}}}}}}{{{b{Fd}}}{{D`{{Gh{Fh}}}}}}{bc{}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{bFb}0{{}c{}}0```{b{{b{c}}}{}}{{{b{A`}}}{{b{A`c}}}{}}{Bb{{b{c}}}{}}{Bb{{b{A`c}}}{}}{Bbf}{{{b{Gj}}{b{A`Bn}}}Fj}{cc{}}{{}Bb}{{}c{}}{{}Gj}{CfGj}{{{b{Gj}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}?>=<``;:987{{{b{Gl}}{b{A`Bn}}}Fj}654{Gd{{Gf{Gl}}}}{{{b{Gl}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Gl}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{{b{Gl}}}{{D`{{Gh{Fh}}}}}}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bFb}{{}c{}}```````{{bd}f}00{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00{{{b{Gn}}}Gn}{{{b{H`}}}H`}{{{b{Hb}}}Hb}{{b{b{A`c}}}f{}}00{{bj}f}00{Bb{{b{c}}}{}}00{Bb{{b{A`c}}}{}}00`{Bbf}{{{b{A`Gn}}}f}11{{{b{Gn}}{b{A`Bn}}}Fj}{{{b{H`}}{b{A`Bn}}}Fj}{{{b{Hb}}{b{A`Bn}}}Fj}{cc{}}00{{{b{c}}}c{}}00{{}Bb}00{{}c{}}00{AbGn}{{}H`}{{AbDj}Gn}{DjH`}{DjHb}{{{b{Gn}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Hb}}{b{Hd}}}{{Gf{f}}}}{{{b{H`}}GbGd}{{D`{{Hf{{Gf{Fh}}}}}}}}{{{b{Hb}}Gd}{{Gf{Hd}}}}{bc{}}00{c{{Bd{e}}}{}{}}00{{}{{Bd{c}}}{}}00{bFb}007{{}c{}}00{{AbDjHhHj}Gn}``{{bd}f}{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{Hl{{Gf{Hn}}}}{{}Hl}{{HlI`}Hl}{{{b{Hn}}}Hn}{{b{b{A`c}}}f{}}{{bj}f}{{}Hn}5{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0{{HlAn}Hl}{Bbf}0{{{b{Hn}}{b{A`Bn}}}Fj}{{{b{Hl}}{b{A`Bn}}}Fj}{cc{}}0{{{b{c}}}c{}}5{{}Bb}0{{HlHj}Hl}{{}c{}}0{HlHl}{{HlDj}Hl}{{{b{Hn}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}4{{{b{Hn}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{HlAb}Hl}{bc{}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{{HlHh}Hl}{bFb}0{{}c{}}0``{{{b{Ib}}c}f{{Eb{Ad}}}}{b{{b{c}}}{}}{{{b{A`}}}{{b{A`c}}}{}}{{}Ib}{Bb{{b{c}}}{}}{Bb{{b{A`c}}}{}}{Bbf}{{{b{Ib}}{b{A`Bn}}}Fj}{cc{}}{eIb{{Eb{Ad}}}{{Ed{}{{Bh{c}}}}}}{{{b{Ib}}Gd}{{D`{Ad}}}}{{}Bb}{{}c{}}9{{{b{Ib}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}3{{{b{Ib}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{{b{Ib}}c}{{D`{Ad}}}{{Eb{Ad}}}}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bFb}{{}c{}}``{{}{{b{Id}}}}{{{b{If}}{b{Gd}}{b{Ef}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Gd}}{b{Ef}}}{{Gf{Ad}}}}{{{b{If}}{b{Gd}}{b{Ef}}{b{{n{Il}}}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Gd}}{b{Ef}}{b{{n{Il}}}}}{{Gf{Ad}}}}{{{b{If}}{b{Ef}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Ef}}}{{Gf{Ad}}}}{{{b{If}}{b{Ef}}{b{{n{Il}}}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Ef}}{b{{n{Il}}}}}{{Gf{Ad}}}}{{{b{If}}cHj}{{`{{Ij{}{{Ih{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}}}}}}}J`}{{{b{Id}}cHj}{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}J`}{{{b{If}}cHj}{{`{{Ij{}{{Ih{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}}}}}}}{J`Jb}}{{{b{Id}}cHj}{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}{J`Jb}}{{{b{If}}cHj{b{{n{Il}}}}}{{`{{Ij{}{{Ih{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}}}}}}}{J`Jb}}{{{b{Id}}cHj{b{{n{Il}}}}}{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}{J`Jb}}105410`{{}{{b{Jd}}}}``````{{bd}f}{{{b{Jf}}}{{b{Ef}}}}{{{b{{Jh{c}}}}}{{b{{Jj{c{Fn{Cf}}}}}}}{JlJnK`Kb}}{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00{{{b{Df}}}Df}{{b{b{A`c}}}f{}}{{bj}f}{{{b{Jf}}{b{Jf}}}Al}{{b{b{c}}}Al{}}{Bb{{b{c}}}{}}00{Bb{{b{A`c}}}{}}00`{Bbf}00{{{b{Jf}}{b{Jf}}}An}{{{b{Df}}{b{Df}}}An}{{b{b{c}}}An{}}00000{{{b{Jf}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Jf}}{b{A`Bn}}}Fj}{{{b{Df}}{b{A`Bn}}}Fj}{{{b{{Jh{c}}}}{b{A`Bn}}}FjKd}{cc{}}0{{{Jh{Jf}}}Df}{{{b{{Jh{Jf}}}}}Df}2{{{b{Df}}}{{Jh{Jf}}}}{{{b{{n{Kf}}}}}{{Gf{Df}}}}{{{b{{n{Kf}}}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{Gde}{{Jh{c}}}{JlJnK`Kb}{{Bl{}{{Bh{{Db{cCf}}}}}}}}{{{b{Hd}}}{{Gf{Df}}}}{{{b{Hd}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{{b{c}}}c{}}{{{b{Ef}}}{{Bd{Jfc}}}{}}{{Gdc}{{Gf{{Jh{e}}}}}{{Bl{}{{Bh{Cf}}}}}{JlJnK`Kb}}{{{b{Ef}}}{{Gf{Gd}}}}{{{b{Jf}}{b{A`c}}}fEj}{{}Bb}00{{}c{}}00{{{b{Jd}}{b{Gd}}{b{Ef}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{{b{Jd}}{b{Ef}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{Gd{D`{Dj}}{G`{Bj}}}Df}{{{b{{Jh{c}}}}}Gd{JlJnK`Kb}}`{{{b{Jf}}{b{Jf}}}{{D`{Al}}}}`{{{b{Df}}{b{Ef}}Hh}{{Gf{{`{{Bl{}{{Bh{Kf}}}}}}}}}}{{{b{{Jh{c}}}}{b{Ef}}Hh}{{Gf{{`{{Bl{}{{Bh{Kf}}}}}}}}}{JlJnK`Kb}}{bc{}}{{{b{Df}}{b{Ab}}Hh}{{Gf{Hd}}}}{{{b{{Jh{c}}}}{b{Ab}}Hh}{{Gf{Hd}}}{JlJnK`Kb}}{bCf}{{{b{Gd}}}Cf}{{{b{Ef}}}{{Bd{Jfc}}}{}}{c{{Bd{e}}}{}{}}00{{}{{Bd{c}}}{}}00{bFb}00{{}c{}}00`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{bd}f}00000000000000000000000000000000{{{b{Gb}}}Kh}{Kj{{Gf{KlKn}}}}{{{b{L`}}}Lb}{{{b{L`}}}Ld}{{Kj{E`{Lf}}}{{Gf{KlKn}}}}{{{b{A`Lh}}Lj}{{b{A`Lh}}}}`{{{b{A`Ll}}{D`{Lh}}}{{b{A`Ll}}}}`{{Lne}LnFf{{M`{{b{Ab}}}{{Ih{{D`{c}}}}}}MbMd}}{{{b{Gb}}Ad}{{Gf{f}}}}{{{b{Gb}}Ad{b{Ef}}}{{Gf{f}}}}```{{{b{Mf}}{b{{n{j}}}}}{{Fl{Mh}}}}{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{A`Kl}}}{{Gf{{Fn{j}}}}}}{{Ln{Fn{{Fn{j}}}}}Ln}{Ln{{Gf{Gb}}}}{{LnMj}Ln}{{LnMl}Ln}{{{b{A`Mn}}Hj}{{b{A`Mn}}}}`{b{{b{c}}}{}}0000000000000000000000000000000000000000000000000000{{{b{A`}}}{{b{A`c}}}{}}0000000000000000000000000000000000000000000000000000{{{b{Gb}}}{{Db{Bj{D`{Bj}}}}}}{{{E`{N`}}NbB`}{{Fl{Nd}}}}{{}Ln}````{LnLn}{{{b{L`}}}L`}{{{b{Nf}}}Nf}{{{b{Nh}}}Nh}{{{b{Nj}}}Nj}{{{b{Nl}}}Nl}{{{b{Nn}}}Nn}{{{b{O`}}}O`}{{{b{Ob}}}Ob}{{{b{Lj}}}Lj}{{{b{Od}}}Od}{{{b{Of}}}Of}{{{b{Oh}}}Oh}{{{b{Oj}}}Oj}{{{b{Ol}}}Ol}{{{b{On}}}On}{{{b{A@`}}}A@`}{{{b{Dh}}}Dh}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{Kn}}}Kn}{{{b{Lh}}}Lh}{{{b{Mn}}}Mn}{{{b{Lf}}}Lf}{{{b{A@h}}}A@h}{{{b{A@j}}}A@j}{{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{AAb}}}AAb}{{{b{AAd}}}AAd}{{{b{Gb}}}Gb}{{{b{AAf}}}AAf}{{{b{Nd}}}{{Fl{Nd}}}}{{b{b{A`c}}}f{}}00000000000000000000000000000000{{bj}f}00000000000000000000000000000000{{{b{L`}}Lj{b{{n{j}}}}}f}{{{b{Gb}}}{{Gf{f}}}}{{{b{L`}}}{{D`{Kn}}}}{{{b{L`}}}Kn}{{{b{Lj}}{b{Lj}}}Al}{{{b{AA`}}{b{AA`}}}Al}{{{b{AAb}}{b{AAb}}}Al}{{{b{AAd}}{b{AAd}}}Al}`{{b{b{c}}}Al{}}000{{{b{A`Ll}}{E`{N`}}}{{b{A`Ll}}}}`{{{b{L`}}}{{Fl{Nd}}}}{{{b{Gb}}Gd}{{Gf{{AAh{A@b}}}}}}`{{{b{Gb}}c{b{{n{j}}}}}{{Gf{L`}}}{{Eb{Ad}}}}`{jA@n}``{{{b{A`Ll}}Bb}{{b{A`Ll}}}}````{{{b{A`Ll}}{D`{Bb}}}{{b{A`Ll}}}}1{{{b{L`}}}Bb}`{{}Ll}{{}Lj}{{}Od}{{}Of}{{}Oh}{{}Oj}{{}A@`}{{}A@b}{{}Lh}{{}Mn}{{}Ln}{{}AAf}{Bb{{b{c}}}{}}0000000000000000000000000000000000000000000000000000{Bb{{b{A`c}}}{}}0000000000000000000000000000000000000000000000000000{c{{Bd{Ol}}}Bf}{c{{Bd{On}}}Bf}{c{{Bd{Dh}}}Bf}{c{{Bd{A@b}}}Bf}{c{{Bd{A@f}}}Bf}{AAdAAj}{{{b{Gb}}}{{AAh{{D`{{G`{AA`}}}}}}}}{{Ln{Fl{Ff}}}Ln}{{{b{Gb}}}{{D`{{b{Ff}}}}}}{LnLn}00{{LnId}Ln}{{{b{Gb}}}{{b{Id}}}}{Bbf}000000000{{{b{A`AAl}}}f}11111{{{b{A`AAn}}}f}22222222222222222222222222222222222222{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{Nf}}{b{Nf}}}An}{{{b{Nh}}{b{Nh}}}An}{{{b{Nj}}{b{Nj}}}An}{{{b{Nl}}{b{Nl}}}An}{{{b{Nn}}{b{Nn}}}An}{{{b{O`}}{b{O`}}}An}{{{b{Ob}}{b{Ob}}}An}{{{b{Lj}}{b{Lj}}}An}{{{b{AB`}}{b{AB`}}}An}{{{b{Ol}}{b{Ol}}}An}{{{b{On}}{b{On}}}An}{{{b{A@`}}{b{A@`}}}An}{{{b{Dh}}{b{Dh}}}An}{{{b{A@b}}{b{A@b}}}An}{{{b{A@d}}{b{A@d}}}An}{{{b{A@f}}{b{A@f}}}An}{{{b{Kn}}{b{Kn}}}An}{{{b{ABb}}{b{ABb}}}An}{{{b{A@h}}{b{A@h}}}An}{{{b{A@j}}{b{A@j}}}An}{{{b{A@l}}{b{A@l}}}An}{{{b{A@n}}{b{A@n}}}An}{{{b{AA`}}{b{AA`}}}An}{{{b{AAb}}{b{AAb}}}An}{{{b{AAd}}{b{AAd}}}An}{{{b{AAf}}{b{AAf}}}An}{{b{b{c}}}An{}}00000000000000000000000000000000000000000000000000000000000000000000000000000``{{{b{L`}}{b{A`{n{j}}}}{b{{n{j}}}}{b{{n{j}}}}}{{Bd{fABb}}}}{{{b{A`AAn}}}{{Bd{fA@d}}}}{{{b{L`}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABd}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Nf}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{ABf}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AAl}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Nh}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Nj}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Nl}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Nn}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AAn}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{O`}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ob}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ll}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Lj}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AB`}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Od}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Of}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Oh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Oj}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Ol}}{b{A`Bn}}}Fj}0{{{b{On}}{b{A`Bn}}}Fj}{{{b{A@`}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Dh}}{b{A`Bn}}}Fj}{{{b{A@b}}{b{A`Bn}}}Fj}0{{{b{A@d}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@f}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{A@f}}{b{A`Bn}}}Fj}{{{b{Kn}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Lh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Mn}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Lf}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABb}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABj}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{A@h}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@j}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@l}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@n}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AA`}}{b{A`Bn}}}Fj}{{{b{AAb}}{b{A`Bn}}}Fj}0{{{b{AAd}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ln}}{b{A`Bn}}}Fj}{{{b{Gb}}{b{A`Bn}}}Fj}{{{b{Kh}}{b{A`Bn}}}Fj}{{{b{Kj}}{b{A`Bn}}}Fj}{{{b{ABl}}{b{A`Bn}}}Fj}{{{b{Kl}}{b{A`Bn}}}Fj}{{{b{AAf}}{b{A`Bn}}}Fj}{{}An}````{cc{}}0000000{KnNf}111{NjNh}22{NlNj}{KnNj}{ABnNj}{KnNl}6{NjNn}77{A@dO`}8{ObO`}{KnO`}:{KnOb};{B`Lj}<{jLj}{AAdLj}{HhLj}????????????{AC`Kn}{A@lKn}{cc{}}0000{ACbABh}111{A@lA@h}2{A@nA@l}{ACdA@l}4{ACfA@l}5555{LjAAd}6666666{{{b{c}}}c{}}00000000000000000000000000000000:{Il{{Bd{LjACh}}}}{IlLj}{{{b{L`}}}{{Gf{h}}}}{{{b{L`}}}{{D`{{Fl{ACj}}}}}}{{{b{A`Kl}}}{{Gf{{Fl{ACj}}Kn}}}}`{{{b{Dh}}}An}{{{b{Lj}}{b{A`c}}}fEj}{{{b{A@f}}{b{A`c}}}fEj}{{{b{AA`}}{b{A`c}}}fEj}{{{b{AAb}}{b{A`c}}}fEj}{{{b{AAd}}{b{A`c}}}fEj}{{{b{Gb}}}{{AAh{{D`{Af}}}}}}{{{b{AAl}}}AAd}{{{b{AAn}}}AAd}{Kjf}`{{{b{A`Lf}}Il}{{b{A`Lf}}}}0{AAdIl}{{}Bb}0000000000000000000000000000000000000000000000000000{{{b{ACl}}Hh{b{ACn}}}{{Bd{AD`ABj}}}}{{{b{A`Ll}}B`}{{b{A`Ll}}}}{{{b{A`Ll}}Hj}{{b{A`Ll}}}}{{{b{Nd}}}Il}{AAdADb}{{LnAn}Ln}{{{b{A`Mn}}Hj}{{b{A`Mn}}}}{{}c{}}0000000000000000000000000000000000000000000000000000{Kl{{Gf{{Db{L`ADd}}Kl}}}}{{{Fl{Nd}}}{{Fl{ACj}}}}{{}}000000{Kjc{}}11{ABfADf}{LjIl}`{{{b{AAl}}}An}{{{b{ABd}}}An}{{{b{Gb}}}An}{c{{ADh{e}}}ADjIj}00000000{{{b{A`Ll}}{D`{Hj}}}{{b{A`Ll}}}}={{Ln{Fn{Ad}}}Ln}```{{{b{Dh}}}{{D`{Hj}}}}```{{{b{L`}}}{{D`{In}}}}{{{b{Kj}}}{{D`{In}}}}{{{b{Kl}}}{{D`{In}}}}```{{{b{Ab}}{Fn{{Fn{j}}}}{E`{Ll}}An}{{Gf{Lf}}}}{{{b{A`Lh}}{D`{Hj}}}{{b{A`Lh}}}}{{{b{A`Ll}}Lj}{{b{A`Ll}}}}0`{{{b{L`}}}{{D`{Bb}}}}{{{b{A`Ll}}{D`{ADl}}}{{b{A`Ll}}}}{{{b{A`Lf}}Bb}{{b{A`Lf}}}}```{{{b{A`Lf}}An}{{b{A`Lf}}}}{{{b{A`Ll}}B`}{{b{A`Ll}}}}{{{b{A`Mn}}B`}{{b{A`Mn}}}}{{{b{A`Ll}}{D`{Mn}}}{{b{A`Ll}}}}{{{b{Gb}}}f}{{{b{ABd}}}An}{{{E`{ACl}}{E`{Mf}}}Lf}{{ADbAAjIl}AAd}``{{{b{Gb}}}{{Gf{Ad}}}}{{{b{Gb}}}Gd}``{{{b{L`}}}{{ADn{{D`{Bj}}}}}}`{{{b{A`Nd}}NbNbIlAn{b{AE`}}}f}{{{b{A`Nd}}NbNbAnIl}f}{{{b{A`Nd}}NbIlAn{D`{Il}}}f}{{{b{A`Nd}}B`}f}{{{b{A`Nd}}NbIlIl}f}{{{b{Mh}}{b{A`{n{j}}}}{b{{n{j}}}}}{{Bd{{b{A`{n{j}}}}ABh}}}}{{{b{L`}}}AEb}{{{b{L`}}}AEd}{{{b{A`Ll}}Hh}{{b{A`Ll}}}}{{{b{Lj}}{b{Lj}}}{{D`{Al}}}}{{{b{AA`}}{b{AA`}}}{{D`{Al}}}}{{{b{AAb}}{b{AAb}}}{{D`{Al}}}}{{{b{AAd}}{b{AAd}}}{{D`{Al}}}}```{{{b{L`}}}{{D`{{Fl{ACj}}}}}}5`{{{AEf{{b{A`ADd}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`AEd}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`AEb}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`Ld}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`Lb}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`AEl}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`Kh}}}}{b{A`AEh}}}{{AEj{c}}}{}}{{{AEf{{b{A`ABl}}}}{b{A`AEh}}}{{AEj{c}}}{}}{{{AEf{{b{A`Kl}}}}{b{A`AEh}}}{{AEj{c}}}{}}{{{AEf{{b{A`AAn}}}}{b{A`AEh}}}{{AEj{{Bd{fAEn}}}}}}{{{b{A`AAl}}{b{A`AEh}}{b{A`{n{j}}}}}{{AEj{{Bd{BbNj}}}}}}{{{AEf{{b{A`AAl}}}}{b{A`AEh}}{b{A`AF`}}}{{AEj{{Bd{fAEn}}}}}}2{{{AEf{{b{A`AAn}}}}{b{A`AEh}}{b{{n{j}}}}}{{AEj{{Bd{BbAEn}}}}}}{{{AEf{{b{A`AAn}}}}{b{A`AEh}}{b{{n{j}}}}}{{AEj{{Bd{BbO`}}}}}}{{{b{A`Lf}}{D`{Mj}}}{{b{A`Lf}}}}{{{b{A`Lf}}{D`{Ml}}}{{b{A`Lf}}}}{{{b{AAn}}}{{Bd{AFbA@d}}}}{LnLn}{{LnDj}Ln}{e{{AFd{cg}}}{}{{ADj{}{{Ih{c}}}}}{{Ij{}{{Ih{c}}}}}}00000000{{{b{A`AAl}}{b{A`{n{j}}}}}{{Bd{{D`{Bb}}Nj}}}}{{{b{A`AAl}}BbAn}{{Bd{{D`{AB`}}Nj}}}}{{{b{A`AAl}}{b{A`{n{AFf}}}}}{{Bd{{D`{Bb}}Nj}}}}{{{b{L`}}}AEl}{{{b{A`AAl}}{b{A`{n{j}}}}}{{Bd{fNn}}}}{{{b{A`AAl}}Bb}{{Bd{{Fn{j}}Nh}}}}```{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{A`Ll}}Lj}{{b{A`Ll}}}}{{{b{A`AAl}}}{{Bd{{D`{Lj}}Nl}}}}{Kjf}{{{b{AAf}}}Ah}{{LnAAf}Ln}`{{{b{L`}}}Bj}{{{b{Kj}}}Bj}{{{b{Kl}}}Bj}{{{b{Kj}}}An}{{{b{Gb}}Gd}{{D`{Dh}}}}{{{b{Gb}}}{{`{{Bl{}{{Bh{Dh}}}}}}}}{{{b{A`Lh}}Lj}{{b{A`Lh}}}}{{{b{A`AAn}}Lj}{{Bd{fA@d}}}}``{Kj{{Gf{fABf}}}}{{{b{ACl}}Hh{b{ACn}}{b{{n{j}}}}}{{l{j}}}}{{{b{A`Lf}}Hj}{{b{A`Lf}}}}{{{b{L`}}}Hj}`{{Ljc}Lj{{Eb{Lj}}}}{{{b{Mh}}{b{A`{Fn{j}}}}{b{{n{j}}}}}{{Bd{fABh}}}}{{LnAb}Ln}{{{b{Gb}}}{{b{Ab}}}}{{{b{L`}}AFf}{{Bd{fNf}}}}{{{b{L`}}AFf}AFh}{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{A`Ll}}Il}{{b{A`Ll}}}}``{{{b{Ol}}c}BdEl}{{{b{On}}c}BdEl}{{{b{Dh}}c}BdEl}{{{b{A@b}}c}BdEl}{{{b{A@f}}c}BdEl}{{{b{Gb}}{Fn{{Fn{j}}}}}{{Gf{f}}}}{{{b{L`}}Lj}f}0{{{b{AAn}}AFb}{{Bd{fA@d}}}}1{{{b{Nf}}}{{D`{{b{F`}}}}}}{{{b{Nh}}}{{D`{{b{F`}}}}}}{{{b{Nj}}}{{D`{{b{F`}}}}}}{{{b{Nl}}}{{D`{{b{F`}}}}}}{{{b{Nn}}}{{D`{{b{F`}}}}}}{{{b{O`}}}{{D`{{b{F`}}}}}}{{{b{Ob}}}{{D`{{b{F`}}}}}}{{{b{Kn}}}{{D`{{b{F`}}}}}}{{{b{Dh}}}{{Fn{{Db{A@fHj}}}}}}`{{{b{L`}}}Bb}{{{E`{ACl}}Hh{b{AFj}}}{{Fl{AFl}}}}{{{b{L`}}}Oj}{{{b{A`AAl}}Lj}{{Bd{fA@d}}}}`{{{b{A`AAn}}}{{Bd{{D`{Lj}}Ob}}}}``{{{b{A`Ll}}Lj}{{b{A`Ll}}}}``{{{b{A`Ll}}AFn}{{b{A`Ll}}}}{bc{}}00000000000000000000000000000000{bCf}0000000000000000000{{{b{A`Lf}}{E`{Mf}}}{{b{A`Lf}}}}`{{{b{A`Lf}}{E`{Ll}}}{{b{A`Lf}}}}{{LnLl}Ln}{c{{Bd{e}}}{}{}}000000000000000000{Il{{Bd{LjACh}}}}1{AG`{{Bd{LjACh}}}}{Bb{{Bd{LjACh}}}}333333333333333333333333333333333{{}{{Bd{c}}}{}}0000000000000000000000000000000000000000000000000000{{{AEf{{b{A`c}}}}{b{A`AEh}}}AEj{}}000000`{bFb}0000000000000000000000000000000000000000000000000000``{{{b{A`Mn}}B`}{{b{A`Mn}}}}{{}c{}}0000000000000000000000000000000000000000000000000000{{{b{L`}}}ABd}{{{b{Nd}}}Il}{{{E`{ACl}}}Lf}{{{Fn{AGb}}AGd}{{Bd{LfAGf}}}}{{{b{A`AAn}}{b{{n{j}}}}}{{Bd{BbO`}}}}{{{b{A`AAn}}{b{{n{j}}}}}{{Bd{fO`}}}}{{{b{A`AAn}}{b{A`{n{AFf}}}}}{{Bd{fO`}}}}{{{b{A`AAn}}AFf}{{Bd{fO`}}}}{{{b{A`AAn}}{b{A`{n{AFf}}}}}{{Bd{A@`O`}}}}``````{{bd}f}000`````````{b{{b{c}}}{}}000{{{b{A`}}}{{b{A`c}}}{}}000``{{{b{AGh}}}AGh}{{{b{AGj}}}AGj}{{{b{AGl}}}AGl}{{{b{AGn}}}AGn}{{b{b{A`c}}}f{}}000{{bj}f}000```{{}AGh}{{}AGj}{{}AGl}{{}AGn}{Bb{{b{c}}}{}}000{Bb{{b{A`c}}}{}}000````{Bbf}000`{{{b{AGh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{AGj}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{AGl}}{b{A`Bn}}}Fj}{{{b{AGn}}{b{A`Bn}}}{{Bd{fC`}}}}`{cc{}}000{{{b{c}}}c{}}000`{{}Bb}000{{}c{}}000{{{b{AGh}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}{{{b{AGj}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}{{{b{AGl}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}{{{b{AGn}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}```{{}{{b{Ef}}}}000````````````````````````````````````````````````````{bc{}}000{c{{Bd{e}}}{}{}}000{{}{{Bd{c}}}{}}000{bFb}000```````{{}c{}}000````{{bd}f}{{{b{AHb}}Kl}{{AHd{{Gf{f}}}}}}{{AHfce}AHf{{AHh{{n{j}}}}}AHb}{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{GbAHf}{{{b{AHj}}}AHj}{{b{b{A`c}}}f{}}{{bj}f}{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0{Bbf}0{{{b{AHj}}}{{b{Gb}}}}{{{b{AHf}}}{{b{Gb}}}}{{{b{AHj}}{b{A`Bn}}}Fj}{{{b{AHf}}{b{A`Bn}}}Fj}{cc{}}0{{{b{c}}}c{}}{{}Bb}0{{}c{}}0{{{b{AHj}}}An}?{{{b{AHb}}}{{AHd{f}}}}{{{b{AHj}}}{{Gf{f}}}}{AHf{{Gf{AHj}}}}{bc{}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{bFb}0{{}c{}}0``{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{Bj{{Gf{Jd}}}}{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0{{{b{AHl}}Ab}{{Fl{Fd}}}}{{{b{AHl}}}Id}{Bbf}0{{{b{AHn}}{b{A`Bn}}}Fj}{{{b{AHl}}{b{A`Bn}}}Fj}{cc{}}0{{}Bb}0{{}c{}}0``{{{b{AHl}}{b{Gd}}Hj}{{Gf{f}}}}`{{}{{Gf{AHl}}}}{{}{{Gf{{Db{AhAfAI`}}}}}}{{{D`{AIb}}An}{{Gf{{Db{AhAfAI`}}}}}}1{Cf{{Gf{AHl}}}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{bFb}0{{}c{}}0``````{{bd}f}00{b{{b{c}}}{}}00000{{{b{A`}}}{{b{A`c}}}{}}00000{e{{AId{g}}}{}{{AIf{}{{Bh{c}}}}}{{AIh{}{{Bh{c}}}}}}{{{b{{AIj{c}}}}}{{AIj{c}}}{}}{{{b{{AAh{c}}}}}{{AAh{c}}}Jb}{{{b{{AIl{c}}}}}{{AIl{c}}}Jb}{{b{b{A`c}}}f{}}00{{bj}f}00{{}{{AIj{c}}}AIn}{Bb{{b{c}}}{}}00000{Bb{{b{A`c}}}{}}00000{Bbf}00000{{{b{{AIj{c}}}}{b{A`Bn}}}FjKd}{{{b{{AAh{c}}}}{b{A`Bn}}}FjKd}{{{b{{AJ`{c}}}}{b{A`Bn}}}FjKd}{{{b{{AJb{c}}}}{b{A`Bn}}}FjKd}{{{b{{AIl{c}}}}{b{A`Bn}}}FjKd}{{{b{AJd}}{b{A`Bn}}}Fj}0{cc{}}00000{{{b{c}}}c{}}00{{{b{{AIj{c}}}}}c{JbAJf}}{{{b{{AAh{c}}}}}{{Bd{cAJd}}}{JbAJf}}{{}Bb}00000{{{b{A`{AAh{{D`{c}}}}}}}{{AJb{c}}}{JbAJf}}{{}c{}}00000{{}}0{{}c{}}{c{{ADh{e}}}ADjIj}0{e{{AJh{cg}}}{}{{AIf{}{{Bh{c}}}}}{{AIh{}{{Bh{c}}}}}}{c{{AIj{c}}}{JbAJf}}{{{AEf{{b{A`{AJ`{c}}}}}}{b{A`AEh}}}{{AEj{e}}}{JbAJf}{}}{{{AEf{{b{A`{AJb{c}}}}}}{b{A`AEh}}}{{AEj{e}}}{JbAJf}{}}{{{AEf{{b{A`{AIl{c}}}}}}{b{A`AEh}}}{{AEj{{D`{e}}}}}{JbAJf}{}}{e{{AFd{cg}}}{}{{ADj{}{{Ih{c}}}}}{{Ij{}{{Ih{c}}}}}}0{{{b{{AJl{AJjceg}}}}}{{AJn{iceg}}}AK`AKbAKd{}}{{{b{{AJl{AJjceg}}}}AKf}{{AJn{iceg}}}AK`AKbAKd{}}{{{b{{AIj{c}}}}c}{{Bd{cc}}}{JbAJf}}{{{AAh{c}}}{{AIl{c}}}{JbAJf}}0{bc{}}00{bCf}{c{{Bd{e}}}{}{}}00000{{}{{Bd{c}}}{}}00000{{{AEf{{b{A`c}}}}{b{A`AEh}}}AEj{}}0{{{AEf{{b{A`c}}}}{b{A`AEh}}}{{AEj{{D`{Bd}}}}}{}}{bFb}00000{{{b{A`{AAh{c}}}}}{{AJ`{c}}}{JbAJf}}{{}c{}}00000{{{b{{AIj{c}}}}}{{AAh{c}}}{JbAJf}}{e{{AKh{g}}}{}{{AIf{}{{Bh{c}}}}}{{AIh{}{{Bh{c}}}}}}","D":"FD`","p":[[1,"reference",null,null,1],[5,"Private",2576],[1,"unit"],[5,"PublicKey",0,2577],[1,"u8"],[1,"array"],[1,"slice"],[0,"mut"],[5,"SecretKey",0,2577],[5,"NodeAddr",0,2578],[5,"RelayUrl",0,2579],[5,"RelayMap",0,2580],[5,"RelayNode",0,2580],[6,"Ordering",2581],[1,"bool"],[1,"u16"],[1,"usize"],[6,"Result",2582,null,1],[10,"Deserializer",2583],[17,"Item"],[6,"SocketAddr",2584],[10,"Iterator",2585],[5,"Formatter",2586],[5,"Error",2586],[6,"KeyParsingError",0,2577],[5,"RelayUrlParseError",0,2579],[5,"String",2587],[5,"VerifyingKey",2588],[5,"Error",2589],[5,"DecodeError",2590],[5,"SigningKey",2591],[6,"Option",2592,null,1],[1,"tuple",null,null,1],[5,"NodeTicket",2593],[5,"NodeInfo",564],[5,"RemoteInfo",655,2594],[5,"Url",2595],[6,"ParseError",2596],[5,"Error",2597],[5,"Arc",2598,null,1],[10,"Into",2599],[10,"IntoIterator",2600],[1,"str"],[10,"CryptoRngCore",2601],[10,"Hasher",2602],[10,"Serializer",2603],[5,"Signature",2604],[10,"Error",2605],[5,"TypeId",2606],[5,"ConcurrentDiscovery",298],[10,"Discovery",298],[5,"DiscoveryItem",298],[8,"Result",2586],[5,"Box",2607,null,1],[5,"Vec",2608],[5,"BTreeSet",2609],[5,"Endpoint",655],[8,"NodeId",0,2577],[8,"Result",2597],[8,"Boxed",2610],[5,"DnsDiscovery",351],[5,"LocalSwarmDiscovery",370],[5,"PkarrPublisher",389],[5,"PkarrResolver",389],[5,"PkarrRelayClient",389],[5,"SignedPacket",2611],[8,"BoxStream",2612],[1,"u32"],[5,"Duration",2613],[5,"Builder",466],[5,"DhtDiscovery",466],[5,"PkarrClient",2614],[5,"StaticProvider",515],[8,"DnsResolver",539],[10,"ResolverExt",539],[17,"Output"],[10,"Future",2615,null,1],[1,"u64"],[6,"IpAddr",2616],[10,"IntoName",2617],[10,"Clone",2618],[8,"TokioResolver",2619],[6,"IrohAttr",564],[5,"TxtAttrs",564],[5,"BTreeMap",2620],[10,"FromStr",2621],[10,"Display",2586],[10,"Hash",2602],[10,"Ord",2581],[10,"Debug",2586],[5,"Record",2622],[5,"Accept",655],[5,"Incoming",655],[5,"Connecting",655],[6,"ConnectionError",655,2623],[5,"Connection",655,2624],[5,"AcceptBi",655,2624],[5,"AcceptUni",655,2624],[5,"ServerConfig",655,2625],[5,"AckFrequencyConfig",655,2625],[5,"VarInt",655,2626],[5,"TransportConfig",655,2625],[5,"Builder",655],[10,"FnOnce",2627],[10,"Send",2628],[10,"Sync",2628],[10,"HandshakeTokenKey",655,2629],[10,"AeadKey",655,2629],[5,"SocketAddrV4",2584],[5,"SocketAddrV6",2584],[5,"MtuDiscoveryConfig",655,2625],[10,"ControllerFactory",655,2630],[5,"Instant",2631],[10,"Controller",655,2630],[6,"SendDatagramError",655,2624],[6,"ReadToEndError",655,2632],[6,"ReadError",655,2632],[6,"ResetError",655,2632],[6,"ReadExactError",655,2632],[6,"WriteError",655,2633],[6,"StoppedError",655,2633],[5,"UdpStats",655,2634],[5,"FrameStats",655,2634],[5,"PathStats",655,2634],[5,"ConnectionStats",655,2634],[6,"ControlMsg",655,2594],[5,"DirectAddrInfo",655,2594],[5,"Written",655,2635],[6,"ConnectionType",655,2594],[5,"ClosedStream",655,2636],[6,"Source",655,2637],[5,"ConnectionClose",655,2638],[5,"ApplicationClose",655,2638],[5,"TransportError",655],[5,"TransportErrorCode",655],[5,"DirectAddr",655,2639],[6,"DirectAddrType",655,2639],[5,"StreamId",655,2640],[6,"RelayMode",655],[5,"Watcher",2444],[6,"Dir",2640],[5,"RecvStream",655,2632],[5,"SendStream",655,2633],[5,"Chunk",655,2641],[5,"ExportKeyingMaterialError",655,2629],[5,"WeakConnectionHandle",655,2624],[5,"RetryError",655,2642],[5,"CryptoError",655,2629],[5,"UnsupportedVersion",655,2629],[5,"IncomingFuture",655],[6,"ReadableError",2643],[6,"Close",2638],[5,"Unspecified",2644],[5,"InvalidFrame",2638],[6,"Error",2645],[5,"VarIntBoundsExceeded",2626],[10,"Any",2606],[10,"CryptoServerConfig",655],[5,"ConnectionId",2646],[5,"Keys",2629],[6,"Side",2640],[5,"ZeroRttAccepted",655,2624],[5,"Incoming",2642],[5,"Join2",2647],[10,"IntoFuture",2648],[5,"IdleTimeout",2625],[5,"Receiver",2649],[5,"RttEstimator",2650],[5,"OpenBi",655,2624],[5,"OpenUni",655,2624],[5,"Pin",2651],[5,"Context",2652],[6,"Poll",2653],[5,"ReadDatagram",655,2624],[5,"Error",2654],[5,"ReadBuf",2655],[1,"i32"],[5,"Race2",2656],[5,"Bytes",2657],[5,"SendDatagram",2624],[5,"TransportParameters",2645],[10,"Session",2629],[1,"f32"],[1,"u128"],[5,"CertificateDer",2658],[6,"PrivateKeyDer",2658],[6,"Error",2659],[5,"PortmapMetrics",2183],[5,"NetReportMetrics",2183],[5,"MagicsockMetrics",2183],[5,"RelayMetrics",2183],[5,"IntoIter",2660],[10,"ProtocolHandler",2359],[8,"Boxed",2661],[5,"RouterBuilder",2359],[10,"AsRef",2599],[5,"Router",2359],[5,"DnsPkarrServer",2404,2662],[5,"CleanupDropGuard",2404],[5,"Server",2663],[5,"StunConfig",2663],[5,"Chain2",2664],[10,"IntoStream",2665],[10,"Stream",2612],[5,"Watchable",2444],[5,"WatcherStream",2444],[10,"Default",2666],[5,"WatchNextFut",2444],[5,"WatchInitializedFut",2444],[5,"Disconnected",2444],[10,"Eq",2581],[5,"Merge2",2667],[6,"NotKeyed",2668],[5,"RateLimiter",2669],[5,"RatelimitedStream",2670],[10,"DirectStateStore",2668],[10,"ReasonablyRealtime",2671],[10,"RateLimitingMiddleware",2672],[5,"Jitter",2673],[5,"Zip2",2674],[15,"Discovery",2181],[15,"NamedApp",2181]],"r":[[2,655],[4,2577],[6,2578],[7,2577],[8,2577],[9,2580],[10,655],[11,2580],[12,2579],[13,2579],[14,2577],[282,2675],[283,2675],[658,2624],[659,2624],[660,2625],[661,2629],[663,2638],[670,2641],[672,2636],[676,2624],[677,2638],[679,2623],[685,2634],[686,2594],[687,2594],[688,2630],[689,2630],[690,2629],[695,2639],[696,2594],[697,2639],[703,2629],[708,2634],[709,2629],[721,2625],[726,2624],[727,2624],[729,2634],[734,2624],[735,2632],[737,2632],[738,2632],[739,2632],[743,2594],[746,2632],[747,2642],[751,2624],[752,2633],[753,2625],[754,2637],[757,2633],[758,2640],[765,2625],[770,2634],[773,2629],[774,2626],[776,2624],[777,2633],[778,2635],[779,2624],[2405,2662],[2410,2676]],"b":[[125,"impl-Debug-for-PublicKey"],[126,"impl-Display-for-PublicKey"],[127,"impl-Debug-for-KeyParsingError"],[128,"impl-Display-for-KeyParsingError"],[129,"impl-Debug-for-SecretKey"],[130,"impl-Display-for-SecretKey"],[132,"impl-Display-for-RelayUrl"],[133,"impl-Debug-for-RelayUrl"],[134,"impl-Display-for-RelayUrlParseError"],[135,"impl-Debug-for-RelayUrlParseError"],[136,"impl-Debug-for-RelayMap"],[137,"impl-Display-for-RelayMap"],[138,"impl-Display-for-RelayNode"],[139,"impl-Debug-for-RelayNode"],[143,"impl-From%3CError%3E-for-KeyParsingError"],[145,"impl-From%3CDecodeError%3E-for-KeyParsingError"],[146,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[148,"impl-From%3CSigningKey%3E-for-SecretKey"],[150,"impl-From%3CPublicKey%3E-for-NodeAddr"],[151,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[152,"impl-From%3CNodeTicket%3E-for-NodeAddr"],[153,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[154,"impl-From%3CRemoteInfo%3E-for-NodeAddr"],[239,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[240,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[602,"impl-Display-for-IrohAttr"],[603,"impl-Debug-for-IrohAttr"],[608,"impl-From%3CTxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[609,"impl-From%3C%26TxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[1385,"impl-Display-for-SendDatagramError"],[1386,"impl-Debug-for-SendDatagramError"],[1387,"impl-Display-for-RetryError"],[1388,"impl-Debug-for-RetryError"],[1390,"impl-Debug-for-ReadToEndError"],[1391,"impl-Display-for-ReadToEndError"],[1392,"impl-Debug-for-ReadError"],[1393,"impl-Display-for-ReadError"],[1394,"impl-Display-for-ResetError"],[1395,"impl-Debug-for-ResetError"],[1396,"impl-Debug-for-ReadExactError"],[1397,"impl-Display-for-ReadExactError"],[1399,"impl-Display-for-WriteError"],[1400,"impl-Debug-for-WriteError"],[1401,"impl-Debug-for-StoppedError"],[1402,"impl-Display-for-StoppedError"],[1404,"impl-Debug-for-VarInt"],[1405,"impl-Display-for-VarInt"],[1411,"impl-Debug-for-ControlMsg"],[1412,"impl-Display-for-ControlMsg"],[1416,"impl-Display-for-ConnectionType"],[1417,"impl-Debug-for-ConnectionType"],[1418,"impl-Debug-for-ClosedStream"],[1419,"impl-Display-for-ClosedStream"],[1420,"impl-Display-for-Source"],[1421,"impl-Debug-for-Source"],[1422,"impl-Display-for-ConnectionError"],[1423,"impl-Debug-for-ConnectionError"],[1430,"impl-Debug-for-ConnectionClose"],[1431,"impl-Display-for-ConnectionClose"],[1432,"impl-Display-for-ApplicationClose"],[1433,"impl-Debug-for-ApplicationClose"],[1434,"impl-Display-for-TransportError"],[1435,"impl-Debug-for-TransportError"],[1436,"impl-Display-for-TransportErrorCode"],[1437,"impl-Debug-for-TransportErrorCode"],[1439,"impl-Display-for-DirectAddrType"],[1440,"impl-Debug-for-DirectAddrType"],[1441,"impl-Display-for-StreamId"],[1442,"impl-Debug-for-StreamId"],[1470,"impl-From%3CResetError%3E-for-ReadError"],[1471,"impl-From%3CConnectionError%3E-for-ReadError"],[1472,"impl-From%3CReadableError%3E-for-ReadError"],[1478,"impl-From%3CClosedStream%3E-for-WriteError"],[1480,"impl-From%3CStoppedError%3E-for-WriteError"],[1481,"impl-From%3CConnectionError%3E-for-WriteError"],[1485,"impl-From%3Cu16%3E-for-VarInt"],[1487,"impl-From%3Cu8%3E-for-VarInt"],[1488,"impl-From%3CStreamId%3E-for-VarInt"],[1489,"impl-From%3Cu32%3E-for-VarInt"],[1502,"impl-From%3CClose%3E-for-ConnectionError"],[1503,"impl-From%3CTransportError%3E-for-ConnectionError"],[1515,"impl-From%3CTransportErrorCode%3E-for-TransportError"],[1516,"impl-From%3CInvalidFrame%3E-for-TransportError"],[1518,"impl-From%3CError%3E-for-TransportError"],[1797,"impl-RecvStream"],[1798,"impl-AsyncRead-for-RecvStream"],[1800,"impl-AsyncWrite-for-SendStream"],[1801,"impl-SendStream"],[1965,"impl-TryFrom%3Cu64%3E-for-VarInt"],[1967,"impl-TryFrom%3Cu128%3E-for-VarInt"],[1968,"impl-TryFrom%3Cusize%3E-for-VarInt"],[2499,"impl-Debug-for-Disconnected"],[2500,"impl-Display-for-Disconnected"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPAGowADAAAACwAAABAABQAXACsARgAVAGAABwBqACIAjgAAAJAAAACSAAEAlQAAAJcAAQCaAAEAnQAAAJ8AAACmAAgAsgAJAMsAAwDWAAQA3AABAOIAJwANAQcALgEAADABCwA9AQEAQAEBAEQBAQBHAQEAUQEAAFMBAABWAQkAYwEFAGoBAABuAQQAdQEFAHwBAAB/AQYAjQEXAKYBBgCwAQUAvgEAAMABAADCAQsAzwECANUBBADdAQgA5wEDAO0BAADvAQEA9gEAAPgBAAD6AQQAAAIDAAcCBgARAgAAFAIAABYCAAAYAgMAKAIAADACAAA7AgEAPgIQAFACDgBhAgEAZAIAAGoCAQBuAgMAegIAAH4CAACBAgAAgwIMABEDIAA4AwAAOgMAAEoDaQC8AyAA3gNBACQEAwApBAMAMwQAADUEAAA6BAEAQAQKAEwEbgDEBDYA/ARnAGgFQgC4BQAAvAUAAL8FAwDEBQAAxwUAAMkFAQDMBQAAzgUAANAFAgDfBQEA5gUAAOoFAADsBQEA7wUAAPQFAAD8BSAAIwYAACUGBAAuBgAAMgY0AKUGCQC1BggA0gYAANYGAgDhBgEA5gYAAPIGAwD3BgEA+wYKAAcHAgAQBwgAMQcBAEIHBABMBwcAWgcAAFwHAQBfBwEAYgc0AJsHEgCvBwAAsgdcABAINABICDQAjAgDAJEIDwCjCAsAsggLAMIICADQCAMA1QgDAN0ICgDxCAYA+QgHAAMJCAAPCQYAFwkUAC4JCAA7CQAAPgkDAEMJCABOCQEAUgkCAFwJCABnCQMAbAkDAHIJAwB4CQEAhQkHAJMJMgDMCQIA0QkFAN4JBQDlCQYA7wkYAAkKBQAQCgAA","P":[[24,"T"],[40,""],[46,"T"],[52,""],[62,"K"],[66,""],[69,"T"],[74,""],[75,"T"],[86,"D"],[88,"__D"],[91,""],[110,"K"],[125,""],[142,"T"],[143,""],[144,"T"],[145,""],[147,"T"],[148,""],[149,"T"],[150,""],[155,"T"],[156,""],[157,"T"],[158,""],[159,"T"],[161,""],[163,"I,"],[164,""],[165,"T"],[171,""],[175,"R"],[176,""],[177,"H"],[178,"__H"],[179,""],[187,"U"],[195,""],[213,"S"],[215,"__S"],[218,""],[225,"T"],[231,""],[238,"U,T"],[239,""],[241,"U,T"],[243,""],[244,"U,T"],[249,"U"],[257,""],[268,"V"],[277,""],[278,""],[302,""],[303,"T"],[307,""],[308,"T"],[309,""],[311,"T"],[316,""],[321,"T"],[325,""],[328,"U"],[335,""],[342,"T"],[343,"U,T"],[345,"U"],[347,""],[349,"V"],[354,"T"],[358,""],[360,"T"],[361,""],[362,"U"],[363,""],[366,"U,T"],[367,"U"],[368,""],[369,"V"],[372,"T"],[376,""],[378,"T"],[379,""],[380,"U"],[381,""],[385,"U,T"],[386,"U"],[387,""],[388,"V"],[396,""],[399,"T"],[405,""],[408,"T"],[411,""],[414,"T"],[421,""],[428,"T"],[434,""],[437,"U"],[440,""],[449,"T"],[452,"U,T"],[455,"U"],[458,""],[462,"V"],[465,""],[469,"T"],[473,""],[477,"T"],[478,""],[481,"T"],[485,""],[490,"T"],[493,""],[497,"U"],[499,""],[505,"T"],[506,"U,T"],[508,"U"],[510,""],[513,"V"],[517,""],[518,"T"],[520,""],[521,"T"],[523,""],[525,"T"],[526,","],[527,""],[529,"U"],[530,""],[534,""],[535,"U,T"],[536,"U"],[537,""],[538,"V"],[541,""],[550,"N"],[563,""],[572,"T"],[579,""],[580,"T"],[581,""],[583,"K"],[584,"T"],[591,""],[596,"K"],[602,""],[605,"T"],[608,""],[610,"T"],[611,""],[613,"T"],[614,"T,"],[615,""],[616,"T"],[618,"FromStr::Err"],[619,",T"],[620,""],[621,"__H"],[622,""],[625,"U"],[628,"T"],[630,""],[631,"T"],[633,""],[636,"T"],[638,""],[639,"T"],[640,""],[642,"TryFrom::Error"],[643,"U,T"],[646,"U"],[649,""],[652,"V"],[784,""],[826,"D,F"],[827,""],[841,"T"],[947,""],[989,"T"],[1022,""],[1064,"K"],[1068,""],[1073,""],[1075,""],[1099,"T"],[1205,"__D"],[1210,""],[1301,"K"],[1381,""],[1455,"T"],[1463,""],[1464,"T"],[1467,""],[1468,"T"],[1470,""],[1474,"T"],[1475,""],[1476,"T"],[1478,""],[1479,"T"],[1480,""],[1482,"T"],[1483,""],[1484,"T"],[1485,""],[1486,"T"],[1487,""],[1490,"T"],[1502,""],[1504,"T"],[1509,""],[1510,"T"],[1513,""],[1514,"T"],[1515,""],[1517,"T"],[1518,""],[1519,"T"],[1523,""],[1524,"T"],[1564,""],[1572,"__H"],[1577,""],[1645,"U"],[1698,""],[1707,"IntoFuture::IntoFuture"],[1708,""],[1716,"F2,F1"],[1725,""],[1793,"Future::Output"],[1796,""],[1807,"T,S2,F1"],[1816,""],[1847,""],[1848,""],[1857,"__S"],[1862,""],[1889,"T"],[1922,""],[1946,"U,T"],[1965,""],[1966,"U,T"],[1967,""],[1969,"U,T"],[2002,"U"],[2055,"F"],[2063,""],[2119,"V"],[2172,""],[2200,"T"],[2210,""],[2214,"T"],[2218,""],[2229,"T"],[2241,""],[2251,"T"],[2260,""],[2264,"U"],[2268,""],[2331,"T"],[2335,"U,T"],[2339,"U"],[2343,""],[2354,"V"],[2362,""],[2364,",T"],[2365,"T"],[2369,""],[2371,"T"],[2372,""],[2373,"T"],[2377,""],[2383,"T"],[2386,""],[2388,"U"],[2390,""],[2395,"T"],[2396,"U,T"],[2398,"U"],[2400,""],[2402,"V"],[2406,"T"],[2410,""],[2411,"T"],[2415,""],[2421,"T"],[2423,""],[2425,"U"],[2429,""],[2436,"U,T"],[2438,"U"],[2440,""],[2442,"V"],[2450,""],[2453,"T"],[2465,"T,S2,S1"],[2466,"T"],[2472,""],[2475,"T"],[2488,""],[2494,"T"],[2499,""],[2501,"T"],[2512,""],[2518,"T"],[2519,"U"],[2525,""],[2527,"S"],[2528,"F2,F1"],[2530,"T,S2,S1"],[2531,"T"],[2532,"T,Future::Output"],[2534,"T,Stream::Item"],[2535,"T,S2,F1"],[2537,"D,C,MW,S"],[2539,"T"],[2545,""],[2546,"U,T"],[2552,"U"],[2558,"F"],[2560,"S"],[2561,""],[2567,"T"],[2568,"V"],[2574,"T"],[2575,"T,S2,S1"]]}],["iroh_base",{"t":"TPPPGTFIFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGTPFPKPNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNNNNNO","n":["BYTE_SIZE","Decode","DecodeInvalidLength","Key","KeyParsingError","LENGTH","NodeAddr","NodeId","PublicKey","RelayUrl","RelayUrlParseError","SecretKey","Signature","as_bytes","as_ref","borrow","","","","","","","","borrow_mut","","","","","","","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","","","deref","deserialize","","","","","direct_addresses","","eq","","","","fmt","","","","","","","","","","","","","","","fmt_short","from","","","","","","","","","","","","","","","","","","","","from_bytes","","","from_components","from_parts","from_slice","from_str","","","","generate","hash","","into","","","","","","","is_empty","new","node_id","partial_cmp","","","public","","r_bytes","relay_url","","s_bytes","secret","serialize","","","","","sign","source","","ticket","to_bytes","","","to_owned","","","","","to_string","","","","","","to_vec","try_from","","","","","","","","","","","try_into","","","","","","","type_id","","","","","","","verify","with_direct_addresses","with_relay_url","Encoding","Error","KIND","Kind","NodeTicket","Postcard","Ticket","Verify","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deserialize","","eq","fmt","","","","from","","","","","from_bytes","","from_str","into","","new","node_addr","serialize","","source","to_bytes","","to_owned","to_string","","try_from","","try_into","","type_id","","expected"],"q":[[0,"iroh_base"],[181,"iroh_base::ticket"],[229,"iroh_base::ticket::Error"],[230,"iroh_base::key"],[231,"ed25519"],[232,"iroh_base::node_addr"],[233,"iroh_base::relay_url"],[234,"core::cmp"],[235,"core::result"],[236,"serde::de"],[237,"core::net::socket_addr"],[238,"core::iter::traits::iterator"],[239,"core::fmt"],[240,"alloc::string"],[241,"ed25519_dalek::signature"],[242,"ed25519_dalek::verifying"],[243,"ed25519_dalek::errors"],[244,"data_encoding"],[245,"ed25519_dalek::signing"],[246,"core::option"],[247,"iroh_base::ticket::node"],[248,"url"],[249,"url::parser"],[250,"core::iter::traits::collect"],[251,"signature::error"],[252,"rand_core"],[253,"core::hash"],[254,"serde::ser"],[255,"core::error"],[256,"alloc::vec"],[257,"core::any"],[258,"postcard::error"]],"i":"nBl00`b```````002001A`AbAdBn645321064321643216432142116432122642166664455332110046666445553332222110064362664313416453210222421436226364321350`6636432164531066644453321064532106453210422El`Ej1`1`1Db202000100002200222100020010210002020202F`","f":"`````````````{{{d{b}}}{{d{{h{f}}}}}}{{{d{b}}}{{d{{j{f}}}}}}{d{{d{c}}}{}}2000000{{{d{l}}}{{d{lc}}}{}}000000{{{d{n}}}n}{{{d{b}}}b}{{{d{A`}}}A`}{{{d{Ab}}}Ab}{{{d{Ad}}}Ad}{{d{d{lc}}}Af{}}0000{{df}Af}0000{{{d{b}}{d{b}}}Ah}{{{d{Ab}}{d{Ab}}}Ah}{{{d{Ad}}{d{Ad}}}Ah}{{{d{Ad}}}{{d{c}}}{}}{c{{Aj{n}}}Al}{c{{Aj{b}}}Al}{c{{Aj{A`}}}Al}{c{{Aj{Ab}}}Al}{c{{Aj{Ad}}}Al}{{{d{Ab}}}{{`{{Bb{}{{An{{d{B`}}}}}}}}}}`{{{d{n}}{d{n}}}Bd}{{{d{b}}{d{b}}}Bd}{{{d{Ab}}{d{Ab}}}Bd}{{{d{Ad}}{d{Ad}}}Bd}{{{d{n}}{d{lBf}}}{{Aj{AfBh}}}}000{{{d{b}}{d{lBf}}}Bj}0{{{d{Bl}}{d{lBf}}}Bj}0{{{d{A`}}{d{lBf}}}Bj}0{{{d{Ab}}{d{lBf}}}Bj}{{{d{Ad}}{d{lBf}}}Bj}0{{{d{Bn}}{d{lBf}}}Bj}0{{{d{b}}}C`}{cc{}}{{{d{{h{f}}}}}n}{{{h{f}}}n}{Cbn}3{Cdb}4{CfBl}{ChBl}{{{h{f}}}A`}7{CjA`}{{{Cn{b{Cl{Ad}}{d{{j{B`}}}}}}}Ab}{D`Ab}{DbAb};{DdAd}<{DfBn}=<{{{d{{h{f}}}}}{{Aj{bCf}}}}{{{d{{h{f}}}}}A`}{{{h{f}}{h{f}}}n}{{b{Cl{Ad}}c}Ab{{Dh{}{{An{B`}}}}}}{{{d{{j{f}}}}}{{Aj{nDj}}}}{{{d{Dl}}}{{Aj{nDj}}}}{{{d{Dl}}}{{Aj{bc}}}{}}{{{d{Dl}}}{{Aj{A`c}}}{}}{{{d{Dl}}}{{Aj{Adc}}}{}}{cA`Dn}{{{d{b}}{d{lc}}}AfE`}{{{d{Ad}}{d{lc}}}AfE`}{{}c{}}000000{{{d{Ab}}}Bd}{bAb}`{{{d{b}}{d{b}}}{{Cl{Ah}}}}{{{d{Ab}}{d{Ab}}}{{Cl{Ah}}}}{{{d{Ad}}{d{Ad}}}{{Cl{Ah}}}}{{{d{b}}}Cd}{{{d{A`}}}b}{{{d{n}}}{{d{{h{f}}}}}}{{{d{Ab}}}{{Cl{{d{Ad}}}}}}`1{{{d{A`}}}{{d{Cj}}}}{{{d{n}}c}AjEb}{{{d{b}}c}AjEb}{{{d{A`}}c}AjEb}{{{d{Ab}}c}AjEb}{{{d{Ad}}c}AjEb}{{{d{A`}}{d{{j{f}}}}}n}{{{d{Bl}}}{{Cl{{d{Ed}}}}}}{{{d{Bn}}}{{Cl{{d{Ed}}}}}}`{{{d{n}}}{{h{f}}}}0{{{d{A`}}}{{h{f}}}}{dc{}}0000{dC`}00000{{{d{n}}}{{Ef{f}}}}{c{{Aj{e}}}{}{}}{{{d{{j{f}}}}}{{Aj{nDj}}}}{{{d{{j{f}}}}}{{Aj{bc}}}{}}{{{d{{h{f}}}}}{{Aj{bc}}}{}}333{{{d{{j{f}}}}}{{Aj{A`c}}}{}}444{{}{{Aj{c}}}{}}000000{dEh}000000{{{d{b}}{d{{j{f}}}}{d{n}}}{{Aj{AfCf}}}}{{Abc}Ab{{Dh{}{{An{B`}}}}}}{{AbAd}Ab}````````{d{{d{c}}}{}}0{{{d{l}}}{{d{lc}}}{}}0{{{d{Db}}}Db}{{d{d{lc}}}Af{}}{{df}Af}{{{d{Dl}}}{{Aj{EjEl}}}}{c{{Aj{Db}}}Al}{{{d{Db}}{d{Db}}}Bd}{{{d{Db}}{d{lBf}}}Bj}0{{{d{El}}{d{lBf}}}Bj}0{cc{}}{AbDb}1{ChEl}{EnEl}{{{d{{j{f}}}}}{{Aj{EjEl}}}}{{{d{{j{f}}}}}{{Aj{DbEl}}}}{{{d{Dl}}}{{Aj{Dbc}}}{}}{{}c{}}06{{{d{Db}}}{{d{Ab}}}}{{{d{Ej}}}C`}{{{d{Db}}c}AjEb}{{{d{El}}}{{Cl{{d{Ed}}}}}}{{{d{Ej}}}{{Ef{f}}}}{{{d{Db}}}{{Ef{f}}}}{dc{}}{dC`}0{c{{Aj{e}}}{}{}}0{{}{{Aj{c}}}{}}0{dEh}0`","D":"Il","p":[[5,"PublicKey",0,230],[1,"reference",null,null,1],[1,"u8"],[1,"array"],[1,"slice"],[0,"mut"],[5,"Signature",0,231],[5,"SecretKey",0,230],[5,"NodeAddr",0,232],[5,"RelayUrl",0,233],[1,"unit"],[6,"Ordering",234],[6,"Result",235,null,1],[10,"Deserializer",236],[17,"Item"],[6,"SocketAddr",237],[10,"Iterator",238],[1,"bool"],[5,"Formatter",239],[5,"Error",239],[8,"Result",239],[6,"KeyParsingError",0,230],[5,"RelayUrlParseError",0,233],[5,"String",240],[5,"InternalSignature",241],[5,"VerifyingKey",242],[8,"SignatureError",243],[5,"DecodeError",244],[5,"SigningKey",245],[6,"Option",246,null,1],[1,"tuple",null,null,1],[8,"NodeId",0,230],[5,"NodeTicket",181,247],[5,"Url",248],[6,"ParseError",249],[10,"IntoIterator",250],[5,"Error",251],[1,"str"],[10,"CryptoRngCore",252],[10,"Hasher",253],[10,"Serializer",254],[10,"Error",255],[5,"Vec",256],[5,"TypeId",257],[10,"Ticket",181],[6,"Error",181],[6,"Error",258],[15,"Kind",229]],"r":[[4,230],[6,232],[7,230],[8,230],[9,233],[10,233],[11,230],[12,231],[185,247]],"b":[[60,"impl-Debug-for-Signature"],[61,"impl-Display-for-Signature"],[62,"impl-LowerHex-for-Signature"],[63,"impl-UpperHex-for-Signature"],[64,"impl-Display-for-PublicKey"],[65,"impl-Debug-for-PublicKey"],[66,"impl-Debug-for-KeyParsingError"],[67,"impl-Display-for-KeyParsingError"],[68,"impl-Display-for-SecretKey"],[69,"impl-Debug-for-SecretKey"],[71,"impl-Display-for-RelayUrl"],[72,"impl-Debug-for-RelayUrl"],[73,"impl-Debug-for-RelayUrlParseError"],[74,"impl-Display-for-RelayUrlParseError"],[77,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[78,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[79,"impl-From%3CInternalSignature%3E-for-Signature"],[83,"impl-From%3CError%3E-for-KeyParsingError"],[84,"impl-From%3CDecodeError%3E-for-KeyParsingError"],[85,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[87,"impl-From%3CSigningKey%3E-for-SecretKey"],[88,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[89,"impl-From%3CPublicKey%3E-for-NodeAddr"],[90,"impl-From%3CNodeTicket%3E-for-NodeAddr"],[138,"impl-SignatureEncoding-for-Signature"],[139,"impl-Signature"],[155,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[156,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[199,"impl-Debug-for-NodeTicket"],[200,"impl-Display-for-NodeTicket"],[201,"impl-Display-for-Error"],[202,"impl-Debug-for-Error"],[206,"impl-From%3CDecodeError%3E-for-Error"],[207,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJgAFgAPACcAOQASAE4AAgBSAAAAVAACAFgAAgBdAAAAXwAAAGcAAwBsAAEAeAACAIIABACIAAEAiwAAAI4ACgCaABgAvgAGAMYABQDPAAEA0gABANkAAQDcAAkA","P":[[15,"T"],[16,""],[17,"T"],[30,""],[35,"T"],[40,""],[48,"Deref::Target"],[49,"D"],[52,"__D"],[54,""],[76,"T"],[77,""],[80,"T"],[81,""],[82,"T"],[83,""],[86,"T"],[87,""],[91,"T"],[92,""],[93,"T"],[94,""],[95,"T"],[96,""],[100,""],[101,""],[103,"FromStr::Err"],[106,"R"],[107,"H"],[108,"__H"],[109,"U"],[116,""],[129,"S"],[132,"__S"],[134,""],[141,"T"],[146,""],[153,"U,T"],[154,""],[155,"TryFrom::Error"],[157,"U,T"],[160,"TryFrom::Error"],[161,"U,T"],[164,"U"],[171,""],[179,""],[180,""],[189,"T"],[193,""],[194,"T"],[195,""],[197,"D"],[198,""],[203,"T"],[204,""],[205,"T"],[206,""],[210,"FromStr::Err"],[211,"U"],[213,""],[216,"S"],[217,""],[220,"T"],[221,""],[223,"U,T"],[225,"U"],[227,""]]}],["iroh_bench",{"t":"FGGGPPPFPPPPNNNNNNNNNNNNNNNNHONNNNNNNNNNNNHNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNCOONCOHCCNOONNNNNNNNNNNNNNNNNNNNNONNNNNOSHHHHHHSHHHHHHFNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFONNNNNNOOOONNNNNNNNNNNOONNNNNNNNNNNNNNONOOOHOOONNNNNNOONNNNNN","n":["ClientStats","Commands","ConnectionSelector","EndpointSelector","Iroh","","","Opt","Quinn","","","S2n","__clone_box","","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","","","","","borrow_mut","","","","","client_handler","clients","clone","","clone_into","","clone_to_uninit","","close","","command","","command_for_update","","configure_tracing_subscriber","default","deref","","","","","deref_mut","","","","","download_size","drop","","","","","fmt","","from","","","","","from_arg_matches","","from_arg_matches_mut","","from_ref","","group_id","has_subcommand","init","","","","","initial_mtu","into","","","","","iroh","max_streams","metrics","print","quinn","read_unordered","rt","s2n","stats","","","streams","to_owned","","try_from","","","","","try_into","","","","","type_id","","","","","update_from_arg_matches","","update_from_arg_matches_mut","","upload_size","vzip","","","","","with_relay","ALPN","client","connect_client","handle_client_stream","server","server_endpoint","transport_config","ALPN","client","connect_client","handle_client_stream","server","server_endpoint","transport_config","Opt","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","clone_to_uninit","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_ref","group_id","init","into","to_owned","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Stats","StreamStats","TransferResult","avg_chunk_size","borrow","","","borrow_mut","","","chunk_size","chunk_time","chunks","","default","","deref","","","deref_mut","","","drop","","","duration","duration_hist","fmt","","","from","","","init","","","into","","","new","print","size","stream_finished","stream_stats","streams","throughput","throughput_bps","throughput_hist","total_duration","total_size","try_from","","","try_into","","","ttfb","ttfb_hist","type_id","","","vzip","",""],"q":[[0,"iroh_bench"],[126,"iroh_bench::iroh"],[133,"iroh_bench::quinn"],[140,"iroh_bench::s2n"],[169,"iroh_bench::stats"],[233,"dyn_clone::sealed"],[234,"clap_builder::builder::command"],[235,"anyhow"],[236,"core::fmt"],[237,"clap_builder::parser::matches::arg_matches"],[238,"clap_builder"],[239,"core::result"],[240,"clap_builder::util::id"],[241,"core::option"],[242,"tokio::runtime::runtime"],[243,"core::any"],[244,"iroh_base::node_addr"],[245,"iroh_base::relay_url"],[246,"iroh::endpoint"],[247,"iroh_quinn::connection"],[248,"iroh_quinn_proto::config"],[249,"core::net::socket_addr"],[250,"rustls_pki_types"],[251,"iroh_quinn::endpoint"],[252,"core::time"]],"i":"````lnAf`21000A`00113210Ab43210`1212121432121`0432104321014321021432102121211243210143210`110`1```3112143210432104321021211432101```````````````E`000000000000000000000000000```DbEbEd2102000210102102102201021021021022121112`01110210220102102","f":"````````````{{bd}f}0{hh}000{b{{b{c}}}{}}0000{{{b{j}}}{{b{jc}}}{}}0000{{lnA`}{{Ad{Ab}}}}`{{{b{Af}}}Af}{{{b{A`}}}A`}{{b{b{jc}}}f{}}0{{bAh}f}0{l{{Ad{f}}}}{{{b{n}}Aj{b{{Al{Ah}}}}}f}{{}h}000{{}f}{{}Ab}{An{{b{c}}}{}}0000{An{{b{jc}}}{}}0000`{Anf}0000{{{b{Af}}{b{jB`}}}Bb}{{{b{A`}}{b{jB`}}}Bb}{cc{}}0000{{{b{Bd}}}{{Bh{AfBf}}}}{{{b{Bd}}}{{Bh{A`Bf}}}}{{{b{jBd}}}{{Bh{AfBf}}}}{{{b{jBd}}}{{Bh{A`Bf}}}}{{{b{c}}}c{}}0{{}{{Bl{Bj}}}}{{{b{Bn}}}C`}{{}An}0000`{{}c{}}0000```{{{b{Ab}}An}f}``{{}Cb}``{{{b{n}}}f}``{bc{}}0{c{{Bh{e}}}{}{}}0000{{}{{Bh{c}}}{}}0000{bCd}0000{{{b{jAf}}{b{Bd}}}{{Bh{fBf}}}}{{{b{jA`}}{b{Bd}}}{{Bh{fBf}}}}{{{b{jAf}}{b{jBd}}}{{Bh{fBf}}}}{{{b{jA`}}{b{jBd}}}{{Bh{fBf}}}}`{{}c{}}0000``{{Cf{Bl{Ch}}A`}{{Ad{Ab}}}}{{Cf{Bl{Ch}}A`}{{Ad{{Cn{CjCl}}}}}}{{{b{Cl}}D`C`}{{Ad{{Cn{DbDb}}}}}}{{CjA`}{{Ad{f}}}}{{{b{Cb}}{b{{Bl{Ch}}}}{b{A`}}}{{Cn{CfCj}}}}{{AnDd}Df}`{{DhDjA`}{{Ad{Ab}}}}{{DhDjA`}{{Ad{{Cn{DlCl}}}}}}5{{DlA`}{{Ad{f}}}}{{{b{Cb}}DjDn{b{A`}}}{{Cn{DhDl}}}}4`{{bd}f}{hh}0{b{{b{c}}}{}}{{{b{j}}}{{b{jc}}}{}}{{{b{E`}}}E`}{{b{b{jc}}}f{}}{{bAh}f}{{}h}0{An{{b{c}}}{}}{An{{b{jc}}}{}}{Anf}{{{b{E`}}{b{jB`}}}Bb}{cc{}}{{{b{Bd}}}{{Bh{E`Bf}}}}{{{b{jBd}}}{{Bh{E`Bf}}}}{{{b{c}}}c{}}{{}{{Bl{Bj}}}}{{}An}{{}c{}}{bc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{bCd}{{{b{jE`}}{b{Bd}}}{{Bh{fBf}}}}{{{b{jE`}}{b{jBd}}}{{Bh{fBf}}}}{{}c{}}````{b{{b{c}}}{}}00{{{b{j}}}{{b{jc}}}{}}00````{{}Eb}{{}Ed}{An{{b{c}}}{}}00{An{{b{jc}}}{}}00{Anf}00``{{{b{Eb}}{b{jB`}}}Bb}{{{b{Ed}}{b{jB`}}}Bb}{{{b{Db}}{b{jB`}}}Bb}{cc{}}00{{}An}00{{}c{}}00{{EfD`EfD`}Db}{{{b{Eb}}{b{Bn}}}f}`{{{b{jEb}}Db}f}```{{EfD`}Eh}```{c{{Bh{e}}}{}{}}00{{}{{Bh{c}}}{}}00``{bCd}00{{}c{}}00","D":"Dj","p":[[1,"reference",null,null,1],[5,"Private",233],[1,"unit"],[5,"Command",234],[0,"mut"],[6,"EndpointSelector",0],[6,"ConnectionSelector",0],[5,"Opt",0],[5,"ClientStats",0],[8,"Result",235],[6,"Commands",0],[1,"u8"],[1,"u32"],[1,"slice"],[1,"usize"],[5,"Formatter",236],[8,"Result",236],[5,"ArgMatches",237],[8,"Error",238],[6,"Result",239,null,1],[5,"Id",240],[6,"Option",241,null,1],[1,"str"],[1,"bool"],[5,"Runtime",242],[5,"TypeId",243],[5,"NodeAddr",244],[5,"RelayUrl",245],[5,"Endpoint",246],[5,"Connection",247],[1,"tuple",null,null,1],[1,"u64"],[5,"TransferResult",169],[1,"u16"],[5,"TransportConfig",248],[6,"SocketAddr",249],[5,"CertificateDer",250],[5,"Endpoint",251],[6,"PrivateKeyDer",250],[5,"Opt",140],[5,"Stats",169],[5,"StreamStats",169],[5,"Duration",252],[1,"f64"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMQAEgAAABwAHwAXADgABgBEAAwAVwAAAFoAAQBdAAMAYwAUAHkABAB/AAAAggAAAIUAAQCJAAAAjAAPAJ0ABACjACQAywACANEAGAA=","P":[[18,"T"],[28,""],[32,"T"],[34,""],[44,"T"],[55,""],[62,"T"],[67,""],[71,"T"],[73,""],[81,"U"],[89,""],[98,"T"],[100,"U,T"],[105,"U"],[110,""],[120,"V"],[127,""],[144,"T"],[146,""],[147,"T"],[148,""],[151,"T"],[153,""],[155,"T"],[156,""],[158,"T"],[159,""],[161,"U"],[162,"T"],[163,"U,T"],[164,"U"],[165,""],[168,"V"],[173,"T"],[183,""],[185,"T"],[191,""],[199,"T"],[202,""],[205,"U"],[208,""],[219,"U,T"],[222,"U"],[227,""],[230,"V"]]}],["iroh_dns_server",{"t":"FNNNNNNCCNNNNCNNNCNNNCCNNNNNNGFPPFFFNOONNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNOONNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNOFFFFNNNNONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNGPFFFPPGPPPNNNNOONNNNNNNNNNONNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNOOOOOONNNOOOOHNNNOOOOOONNNNNFNNNNNHNNNNNNFNNNNNNONNNONNNNN","n":["ZoneStore","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","config","dns","fmt","from","from_ref","get_signed_packet","http","in_memory","insert","into","metrics","new","persistent","resolve","server","state","to_owned","try_from","try_into","type_id","vzip","with_mainline_fallback","BootstrapOption","Config","Custom","Default","MainlineConfig","MetricsConfig","StoreConfig","__clone_box","bind_addr","bootstrap","borrow","","","","","borrow_mut","","","","","clone","clone_into","clone_to_uninit","data_dir","default","","","","deserialize","","","","","disabled","","dns","enabled","fmt","","","","","from","","","","","from_ref","http","https","into","","","","","load","mainline","metrics","pkarr_put_rate_limit","serialize","","","","","signed_packet_store_path","to_owned","try_from","","","","","try_into","","","","","type_id","","","","","vzip","","","","","zone_store","DnsConfig","DnsHandler","DnsServer","Handle","__clone_box","","","answer_request","bind_addr","borrow","","","","borrow_mut","","","","clone","","","clone_into","","","clone_to_uninit","","","default_soa","default_ttl","deserialize","fmt","","","from","","","","from_ref","","","handle_request","into","","","","local_addr","new","origins","port","rr_a","rr_aaaa","rr_ns","run_until_done","send_response","serialize","shutdown","spawn","to_owned","","","try_from","","","","try_into","","","","type_id","","","","vzip","","","","CertMode","Disabled","HttpConfig","HttpServer","HttpsConfig","LetsEncrypt","Manual","RateLimitConfig","SelfSigned","Simple","Smart","__clone_box","","","","bind_addr","","borrow","","","","","borrow_mut","","","","","cert_mode","clone","","","","clone_into","","","","clone_to_uninit","","","","default","","deserialize","","","","domains","eq","equivalent","","","fmt","","","","","from","","","","","from_ref","","","","http_addr","https_addr","into","","","","","letsencrypt_contact","letsencrypt_prod","port","","run_until_done","serialize","","","","shutdown","spawn","to_owned","","","","to_string","try_from","","","","","try_into","","","","","type_id","","","","","vzip","","","","","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","dns_lookup_error","dns_lookup_notfound","dns_lookup_success","dns_requests","dns_requests_https","dns_requests_udp","fmt","from","from_ref","http_requests","http_requests_duration_ms","http_requests_error","http_requests_success","init_metrics","into","iter","name","pkarr_publish_noop","pkarr_publish_update","store_packets_expired","store_packets_inserted","store_packets_removed","store_packets_updated","to_owned","try_from","try_into","type_id","vzip","Server","borrow","borrow_mut","from","into","run_until_error","run_with_config_until_ctrl_c","shutdown","spawn","try_from","try_into","type_id","vzip","AppState","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","dns_handler","from","from_ref","into","store","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"iroh_dns_server"],[29,"iroh_dns_server::config"],[116,"iroh_dns_server::dns"],[191,"iroh_dns_server::http"],[299,"iroh_dns_server::metrics"],[335,"iroh_dns_server::server"],[348,"iroh_dns_server::state"],[365,"dyn_clone::sealed"],[366,"iroh_dns_server::store"],[367,"core::fmt"],[368,"pkarr::signed_packet"],[369,"core::option"],[370,"anyhow"],[371,"std::path"],[372,"core::convert"],[373,"hickory_proto::rr::domain::name"],[374,"hickory_proto::rr::record_type"],[375,"hickory_proto::rr::rr_set"],[376,"alloc::sync"],[377,"core::result"],[378,"core::any"],[379,"serde::de"],[380,"serde::ser"],[381,"hickory_server::server::request_handler"],[382,"bytes::bytes"],[383,"core::future::future"],[384,"alloc::boxed"],[385,"core::pin"],[386,"hickory_server::server::response_handler"],[387,"core::net::socket_addr"],[388,"hickory_server::authority::message_response"],[389,"hickory_proto::rr::resource"],[390,"core::iter::traits::iterator"],[391,"core::marker"],[392,"iroh_dns_server::http::rate_limiting"],[393,"iroh_dns_server::http::tls"],[394,"alloc::string"],[395,"alloc::vec::into_iter"]],"i":"`j00000``0000`000`000``000000``Bj0```BlCfCbC`3214032143330031403214220103214032143000321400000321403032140321403214032140````D`CjDb12Dl32103213213213213333210321321203210233333013003210321032103210321`Ej```El0`01110EnF`10Fd432104321143214321432144432113333433210432143210004321112104321004321304321043210432104321`Fj0000000000000000000`00000000000000`Gd0000`000000`Ff000000000000000","f":"`{{bd}f}{b{{b{c}}}{}}{{{b{h}}}{{b{hc}}}{}}{{{b{j}}}j}{{b{b{hc}}}f{}}{{bl}f}``{{{b{j}}{b{hn}}}A`}{cc{}}{{{b{c}}}c{}}{{{b{j}}{b{`}}}{{Af{{Ad{Ab}}}}}}```{{}c{}}```{{{b{j}}{b{`}}{b{An}}B`}{{Af{{Ad{{Bd{Bb}}}}}}}}``{bc{}}{c{{Bf{e}}}{}{}}{{}{{Bf{c}}}{}}{bBh}{{}c{}}{{jBj}j}```````{{bd}f}``{b{{b{c}}}{}}0000{{{b{h}}}{{b{hc}}}{}}0000{{{b{Bl}}}Bl}{{b{b{hc}}}f{}}{{bl}f}{{}{{Af{Bn}}}}{{}C`}{{}Bl}{{}Cb}{{}Bj}{c{{Bf{C`}}}Cd}{c{{Bf{Bl}}}Cd}{c{{Bf{Cf}}}Cd}{c{{Bf{Cb}}}Cd}{c{{Bf{Bj}}}Cd}{{}Cf}```{{{b{C`}}{b{hn}}}A`}{{{b{Bl}}{b{hn}}}A`}{{{b{Cf}}{b{hn}}}A`}{{{b{Cb}}{b{hn}}}A`}{{{b{Bj}}{b{hn}}}A`}{cc{}}0000{{{b{c}}}c{}}``{{}c{}}0000{c{{Af{C`}}}{{Al{Aj}}}}```{{{b{C`}}c}BfCh}{{{b{Bl}}c}BfCh}{{{b{Cf}}c}BfCh}{{{b{Cb}}c}BfCh}{{{b{Bj}}c}BfCh}{{}{{Af{Bn}}}}{bc{}}{c{{Bf{e}}}{}{}}0000{{}{{Bf{c}}}{}}0000{bBh}0000{{}c{}}0000`````{{bd}f}00{{{b{Cj}}Cl}{{Af{Cn}}}}`{b{{b{c}}}{}}000{{{b{h}}}{{b{hc}}}{}}000{{{b{D`}}}D`}{{{b{Cj}}}Cj}{{{b{Db}}}Db}{{b{b{hc}}}f{}}00{{bl}f}00``{c{{Bf{D`}}}Cd}{{{b{D`}}{b{hn}}}A`}{{{b{Cj}}{b{hn}}}A`}{{{b{Db}}{b{hn}}}A`}{cc{}}000{{{b{c}}}c{}}00{{{b{Cj}}{b{Cl}}c}{{Dh{{Df{Dd}}}}}Dj}{{}c{}}000{{{b{Dl}}}Dn}{{j{b{D`}}}{{Af{Cj}}}}`````{Dl{{Af{f}}}}{{{b{hDb}}{E`{cegi}}}{{Dh{{Df{Dd}}}}}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}}{{{b{D`}}c}BfCh}2{{D`Cj}{{Af{Dl}}}}{bc{}}00{c{{Bf{e}}}{}{}}000{{}{{Bf{c}}}{}}000{bBh}000{{}c{}}000```````````{{bd}f}000``{b{{b{c}}}{}}0000{{{b{h}}}{{b{hc}}}{}}0000`{{{b{Ej}}}Ej}{{{b{El}}}El}{{{b{En}}}En}{{{b{F`}}}F`}{{b{b{hc}}}f{}}000{{bl}f}000{{}{{b{Ej}}}}{{}Ej}{c{{Bf{Ej}}}Cd}{c{{Bf{El}}}Cd}{c{{Bf{En}}}Cd}{c{{Bf{F`}}}Cd}`{{{b{El}}{b{El}}}Ah}{{b{b{c}}}Ah{}}00{{{b{Ej}}{b{hn}}}A`}{{{b{El}}{b{hn}}}A`}{{{b{El}}{b{hn}}}{{Bf{fFb}}}}{{{b{En}}{b{hn}}}A`}{{{b{F`}}{b{hn}}}A`}{cc{}}0000{{{b{c}}}c{}}000{{{b{Fd}}}{{Ad{Dn}}}}0{{}c{}}0000````{Fd{{Af{f}}}}{{{b{Ej}}c}BfCh}{{{b{El}}c}BfCh}{{{b{En}}c}BfCh}{{{b{F`}}c}BfCh}4{{{Ad{En}}{Ad{F`}}EjFf}{{Af{Fd}}}}{bc{}}000{bFh}{c{{Bf{e}}}{}{}}0000{{}{{Bf{c}}}{}}0000{bBh}0000{{}c{}}0000`{{bd}f}{b{{b{c}}}{}}{{{b{h}}}{{b{hc}}}{}}{{{b{Fj}}}Fj}{{b{b{hc}}}f{}}{{bl}f}{{}Fj}``````{{{b{Fj}}{b{hn}}}A`}{cc{}}{{{b{c}}}c{}}````{{}f}{{}c{}}{{{b{Fj}}}{{Gb{{G`{{b{Fl}}{b{Fn}}}}}}}}{{}{{b{Fl}}}}``````{bc{}}{c{{Bf{e}}}{}{}}{{}{{Bf{c}}}{}}{bBh}{{}c{}}`{b{{b{c}}}{}}{{{b{h}}}{{b{hc}}}{}}<9{Gd{{Af{f}}}}{C`{{Af{f}}}}1{{C`j}{{Af{Gd}}}}8765`{{bd}f}54{{{b{Ff}}}Ff}{{b{b{hc}}}f{}}{{bl}f}`{cc{}}{{{b{c}}}c{}}{{}c{}}`{bc{}}{c{{Bf{e}}}{}{}}{{}{{Bf{c}}}{}}{bBh}{{}c{}}","D":"Oj","p":[[1,"reference",null,null,1],[5,"Private",365],[1,"unit"],[0,"mut"],[5,"ZoneStore",0,366],[1,"u8"],[5,"Formatter",367],[8,"Result",367],[5,"SignedPacket",368],[6,"Option",369,null,1],[8,"Result",370],[1,"bool"],[5,"Path",371],[10,"AsRef",372],[5,"Name",373],[6,"RecordType",374],[5,"RecordSet",375],[5,"Arc",376,null,1],[6,"Result",377,null,1],[5,"TypeId",378],[6,"BootstrapOption",29],[5,"StoreConfig",29],[5,"PathBuf",371],[5,"Config",29],[5,"MainlineConfig",29],[10,"Deserializer",379],[5,"MetricsConfig",29],[10,"Serializer",380],[5,"DnsHandler",116],[5,"Request",381],[5,"Bytes",382],[5,"DnsConfig",116],[5,"Handle",116],[10,"Future",383,null,1],[5,"Box",384,null,1],[5,"Pin",385],[10,"ResponseHandler",386],[5,"DnsServer",116],[6,"SocketAddr",387],[5,"MessageResponse",388],[17,"Item"],[5,"Record",389],[10,"Iterator",390],[10,"Send",391],[6,"RateLimitConfig",191,392],[6,"CertMode",191,393],[5,"HttpConfig",191],[5,"HttpsConfig",191],[5,"Error",367],[5,"HttpServer",191],[5,"AppState",348],[5,"String",394],[5,"Metrics",299],[1,"str"],[10,"Any",378],[1,"tuple",null,null,1],[5,"IntoIter",395],[5,"Server",335]],"r":[[0,366],[191,393],[198,392]],"b":[[231,"impl-Default-for-%26RateLimitConfig"],[232,"impl-Default-for-RateLimitConfig"],[243,"impl-Debug-for-CertMode"],[244,"impl-Display-for-CertMode"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPAAIAACAAUACgAAAAwAAAAYAAQAJQAAACgADAA2AAgAQwAEAE0AAABZAAQAXwAUAHkAAgB+ABAAkQADAJkAAwCpAAEArQASAMsAAwDRAAkA3AARAO8ACAD9AAMADQEDABMBGAAtAQ0APAEEAEMBDABRAQEAWQEDAF4BBQBmAQAAaQEEAA==","P":[[2,"T"],[4,""],[5,"T"],[6,""],[10,"T"],[12,""],[16,"U"],[18,""],[19,""],[20,""],[23,"T"],[24,"U,T"],[25,"U"],[26,""],[27,"V"],[28,""],[39,"T"],[49,""],[50,"T"],[51,""],[57,"__D"],[62,""],[71,"T"],[79,"U"],[84,""],[88,"__S"],[93,""],[94,"T"],[95,"U,T"],[100,"U"],[105,""],[110,"V"],[120,""],[125,"T"],[133,""],[136,"T"],[139,""],[144,"__D"],[145,""],[148,"T"],[155,"R"],[156,"U"],[160,""],[168,",,,"],[169,"__S"],[170,""],[172,"T"],[175,"U,T"],[179,"U"],[183,""],[187,"V"],[202,""],[208,"T"],[219,""],[223,"T"],[227,""],[233,"__D"],[238,""],[239,"K"],[242,""],[247,"T"],[256,""],[258,"U"],[267,""],[268,"__S"],[272,""],[274,"T"],[278,""],[279,"U,T"],[284,"U"],[289,""],[294,"V"],[300,""],[301,"T"],[303,""],[304,"T"],[305,""],[314,"T"],[320,""],[321,"U"],[322,""],[330,"T"],[331,"U,T"],[332,"U"],[333,""],[334,"V"],[336,"T"],[339,"U"],[340,""],[344,"U,T"],[345,"U"],[346,""],[347,"V"],[349,""],[350,"T"],[352,""],[353,"T"],[354,""],[356,"T"],[358,"U"],[360,"T"],[361,"U,T"],[362,"U"],[363,""],[364,"V"]]}],["iroh_net_report",{"t":"FFFFFFFNHNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNOONNNNNNNNNNNNNNOOOOOONNOONNHOOONNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNN","n":["Addr","Client","Metrics","Options","QuicConfig","RelayLatencies","Report","addr","bind_local_stun_socket","borrow","","","","","","","borrow_mut","","","","","","","captive_portal","client_config","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","default","","","","deref","","","","","","","deref_mut","","","","","","","disabled","drop","","","","","","","ep","eq","","equivalent","","","","","","fmt","","","","","","","","from","","","","","","","get_report","get_report_channel","get_report_with_opts","global_v4","global_v6","hair_pinning","https","icmp_v4","icmp_v6","icmpv4","icmpv6","init","","","","","","","into","","","","","","","ipv4","","ipv4_can_send","ipv6","","ipv6_can_send","iter","","mapping_varies_by_dest_ip","mapping_varies_by_dest_ipv6","name","new","os_has_ipv6","","portmap_probe","preferred_relay","quic_config","receive_stun_packet","relay_latency","relay_v4_latency","relay_v6_latency","reports","reports_full","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","stun_v4","stun_v6","to_owned","","","","","to_string","try_from","","","","","","","try_into","","","","","","","type_id","","","","","","","udp","vzip","","","","","",""],"q":[[0,"iroh_net_report"],[180,"netwatch::ip_family"],[181,"tokio_util::sync::cancellation_token"],[182,"netwatch::udp"],[183,"alloc::sync"],[184,"core::option"],[185,"iroh_net_report::metrics"],[186,"iroh_net_report::reportgen"],[187,"core::fmt"],[188,"iroh_relay::relay_map"],[189,"anyhow"],[190,"tokio::sync::oneshot"],[191,"core::any"],[192,"alloc::vec::into_iter"],[193,"iroh_base::relay_url"],[194,"core::time"],[195,"core::iter::traits::iterator"],[196,"portmapper"],[197,"hickory_resolver::resolver"],[198,"bytes::bytes"],[199,"core::net::socket_addr"],[200,"alloc::string"],[201,"core::result"],[202,"iroh_net_report::stun_utils"]],"i":"```````b`AdAfAhAj4B`f543261034543205432054320532154326105432610154326104323332225433261054326106663331113354326105432610433433523356`3331033355555551154320354326105432610543261035432610","f":"```````{{{d{b}}}f}{{hfj}{{A`{{n{l}}}}}}{d{{d{c}}}{}}000000{{{d{Ab}}}{{d{Abc}}}{}}000000``{{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{Ah}}}Ah}{{{d{Aj}}}Aj}{{{d{f}}}f}{{d{d{Abc}}}Al{}}0000{{dAn}Al}0000{{}Ad}{{}Ah}{{}Aj}{{}B`}{Bb{{d{c}}}{}}000000{Bb{{d{Abc}}}{}}0000002{BbAl}000000`{{{d{Ah}}{d{Ah}}}Bd}{{{d{Aj}}{d{Aj}}}Bd}{{d{d{c}}}Bd{}}00000{{{d{Ad}}{d{AbBf}}}Bh}{{{d{Af}}{d{AbBf}}}Bh}{{{d{Ah}}{d{AbBf}}}Bh}0{{{d{Aj}}{d{AbBf}}}Bh}{{{d{b}}{d{AbBf}}}Bh}{{{d{B`}}{d{AbBf}}}Bh}{{{d{f}}{d{AbBf}}}Bh}{cc{}}000000{{{d{Abb}}Bj{A`{{n{l}}}}{A`{{n{l}}}}{A`{Af}}}{{Bl{{n{Ah}}}}}}{{{d{Abb}}BjB`}{{Bl{{Bn{{Bl{{n{Ah}}}}}}}}}}{{{d{Abb}}BjB`}{{Bl{{n{Ah}}}}}}```{{B`Bd}B`}00``{{}Bb}000000{{}c{}}000000``````{{{d{Ad}}}{{Cf{{Cd{{d{C`}}{d{Cb}}}}}}}}{{{d{Aj}}}{{`{{Cn{}{{Ch{{Cd{{d{Cj}}Cl}}}}}}}}}}``{{}{{d{C`}}}}{{{A`{D`}}Db}{{Bl{b}}}}{{}Bd}```{{B`{A`{Af}}}B`}{{{d{f}}DdDf}Al}``````````{{B`{A`{{n{l}}}}}B`}0{dc{}}0000{dDh}{c{{Dj{e}}}{}{}}000000{{}{{Dj{c}}}{}}000000{dDl}000000`{{}c{}}000000","D":"Gj","p":[[5,"Client",0],[1,"reference",null,null,1],[5,"Addr",0],[6,"IpFamily",180],[5,"CancellationToken",181],[5,"UdpSocket",182],[5,"Arc",183,null,1],[6,"Option",184,null,1],[0,"mut"],[5,"Metrics",0,185],[5,"QuicConfig",0,186],[5,"Report",0],[5,"RelayLatencies",0],[1,"unit"],[1,"u8"],[5,"Options",0],[1,"usize"],[1,"bool"],[5,"Formatter",187],[8,"Result",187],[5,"RelayMap",188],[8,"Result",189],[5,"Receiver",190],[1,"str"],[10,"Any",191],[1,"tuple",null,null,1],[5,"IntoIter",192],[17,"Item"],[5,"RelayUrl",193],[5,"Duration",194],[10,"Iterator",195],[5,"Client",196],[8,"TokioResolver",197],[5,"Bytes",198],[6,"SocketAddr",199],[5,"String",200],[6,"Result",201,null,1],[5,"TypeId",191]],"r":[[2,185],[4,186],[8,202]],"b":[[77,"impl-Display-for-Report"],[78,"impl-Debug-for-Report"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAHcACgAKAA0AGgAgADwABgBEAA8AZgAGAHoAAAB+AAAAiQAGAJIAGgCuAAYA","P":[[9,"T"],[25,""],[30,"T"],[35,""],[44,"T"],[58,""],[69,"K"],[75,""],[83,"T"],[90,""],[108,"U"],[121,""],[145,"T"],[150,""],[151,"U,T"],[158,"U"],[165,""],[173,"V"]]}],["iroh_relay",{"t":"EFFFNNNNNNCNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNOCCONNCOONNNNNNNNNNNNNNONNNNPPFFGPPPPPPPPPPPPPPPPPPGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOSSSSSSGSSPPNNNNNNNNNNNNNNNNNNNNNNNCCCSHSPGPPPPPPPPGFPPPPPPPPPPPGFPFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNCHHNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSFNNNNNNNNNNNNNNNGFSPFPGFPFFPFFFFFPFOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOONONNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNNNNNNNONONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNOOOONNOOONNNNNONOOONONOOOOOONNNONNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNOOOHHHHHH","n":["MAX_PACKET_SIZE","RelayMap","RelayNode","RelayQuicConfig","borrow","","","borrow_mut","","","client","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","contains_node","default","default_from_node","defaults","deref","","","deref_mut","","","deserialize","","drop","","","empty","eq","","","equivalent","","","","","","","","","fmt","","","","","from","","","from_nodes","from_url","get_node","http","init","","","into","","","is_empty","len","nodes","partial_cmp","","port","protos","quic","","serialize","","server","stun_only","stun_port","to_owned","","","to_string","","try_from","","","try_into","","","type_id","","","url","urls","vzip","","","ActorGone","Build","Client","ClientBuilder","ClientError","Closed","ConnectTimeout","DialIO","Dns","Health","Http","Hyper","IPDisabled","InvalidUrl","KeepAlive","NoLocalAddr","NodeGone","Ping","PingAborted","PingTimeout","Pong","Proxy","Receive","ReceivedMessage","ReceivedPacket","Send","ServerRestarting","UnexpectedStatusCode","Upgrade","WebsocketError","address_family_selector","borrow","","","","borrow_mut","","","","build","clone","clone_into","clone_to_uninit","close","close_for_reconnect","connect","deref","","","","deref_mut","","","","drop","","","","finish_ping","fmt","","","","","from","","","","","","","","init","","","","insecure_skip_cert_verify","into","","","","is_connected","is_prober","key_cache_capacity","local_addr","make_dangerous_client_config","new","note_preferred","protocol","proxy_url","public_key","recv","send","send_pong","server_public_key","server_url","source","start_ping","to_owned","to_string","try_from","","","","try_into","","","","type_id","","","","vzip","","","","data","problem","reconnect_in","remote_node_id","try_for","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_KEY_CACHE_CAPACITY","DEFAULT_METRICS_PORT","DEFAULT_RELAY_QUIC_PORT","DEFAULT_STUN_PORT","Protocol","RELAY_PATH","RELAY_PROBE_PATH","Relay","Websocket","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","fmt","from","init","into","parse_header","to_owned","try_from","try_into","type_id","upgrade_header","vzip","disco","relay","stun","MAGIC","looks_like_disco_wrapper","MAX_PACKET_SIZE","AlternateServer","Error","ErrorCode","ErrorResponse","Fingerprint","Indication","InvalidFingerprint","InvalidMessage","MalformedAttrs","MappedAddress","MessageClass","MessageDecoder","MessageIntegrity","MessageIntegritySha256","NoFingerprint","Nonce","NotBinding","NotSuccessResponse","PasswordAlgorithm","PasswordAlgorithms","Realm","Request","Software","StunAttribute","StunDecodeError","SuccessResponse","TransactionId","Unknown","UnknownAttributes","UserHash","UserName","XorMappedAddress","as_alternate_server","as_bytes","as_error_code","as_fingerprint","as_mapped_address","as_message_integrity","as_message_integrity_sha256","as_nonce","as_password_algorithm","as_password_algorithms","as_realm","as_ref","as_software","as_unknown","as_unknown_attributes","as_user_hash","as_user_name","as_xor_mapped_address","attribute_type","borrow","","","","","","borrow_mut","","","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","compare","decode","default","","deref","","","","","","","deref_mut","","","","","","drop","","","","","","eq","","equivalent","","","","","","expect_alternate_server","expect_error_code","expect_fingerprint","expect_mapped_address","expect_message_integrity","expect_message_integrity_sha256","expect_nonce","expect_password_algorithm","expect_password_algorithms","expect_realm","expect_software","expect_unknown","expect_unknown_attributes","expect_user_hash","expect_user_name","expect_xor_mapped_address","fmt","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","get_context","hash","init","","","","","","into","","","","","","is","is_alternate_server","is_error_code","is_fingerprint","is_mapped_address","is_message_integrity","is_message_integrity_sha256","is_nonce","is_password_algorithm","is_password_algorithms","is_realm","is_software","is_unknown","is_unknown_attributes","is_user_hash","is_user_name","is_xor_mapped_address","methods","parse_binding_request","parse_response","partial_cmp","request","response","to_owned","","","","to_string","","","try_from","","","","","","","try_into","","","","","","type_id","","","","","","vzip","","","","","","BINDING","RESERVED","SHARED_SECRET","ALPN_QUIC_ADDR_DISC","QUIC_ADDR_DISC_CLOSE_CODE","QUIC_ADDR_DISC_CLOSE_REASON","QuicClient","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","get_addr_and_latency","init","into","new","try_from","try_into","type_id","vzip","CertConfig","ClientConnRateLimit","DEFAULT_CERT_RELOAD_INTERVAL","LetsEncrypt","Limits","Manual","MaybeTlsStreamServer","Metrics","Plain","QuicConfig","RelayConfig","Reloading","ReloadingResolver","Server","ServerConfig","StunConfig","StunMetrics","Tls","TlsConfig","accept_conn_burst","accept_conn_limit","accepts","bad_requests","bind_addr","","borrow","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","bytes_per_second","bytes_recv","bytes_sent","cert","certificates","client_rx","clone","","","clone_into","","","clone_to_uninit","","","conns_rx_ratelimited_total","default","","","","deref","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","drop","","","","","","","","","","","","","failures","fmt","","","","","","","","","","","","","frames_rx_ratelimited_total","from","","","","","","","","","","","","","got_ping","http_addr","http_bind_addr","http_url","https_addr","https_bind_addr","https_url","init","","","","","","","","","","","","","","into","","","","","","","","","","","","","ipv4_success","ipv6_success","iter","","key_cache_capacity","limits","max_burst_bytes","metrics_addr","name","","other_packets_dropped","other_packets_recv","other_packets_sent","poll_flush","poll_read","poll_shutdown","poll_write","poll_write_vectored","quic","quic_addr","quic_bind_addr","relay","relay_accepts","reload","requests","resolve","send_packets_dropped","send_packets_recv","send_packets_sent","sent_pong","server_config","","shutdown","","spawn","stun","stun_addr","task_handle","testing","tls","to_owned","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","","","type_id","","","","","","","","","","","","","unique_client_keys","unknown_frames","vzip","","","","","","","","","","","","","websocket_accepts","certs","state","quic_config","relay_config","self_signed_tls_certs_and_config","server_config","stun_config","tls_config"],"q":[[0,"iroh_relay"],[103,"iroh_relay::client"],[219,"iroh_relay::client::ReceivedMessage"],[224,"iroh_relay::defaults"],[230,"iroh_relay::http"],[258,"iroh_relay::protos"],[261,"iroh_relay::protos::disco"],[263,"iroh_relay::protos::relay"],[264,"iroh_relay::protos::stun"],[489,"iroh_relay::protos::stun::methods"],[492,"iroh_relay::quic"],[511,"iroh_relay::server"],[786,"iroh_relay::server::CertConfig"],[788,"iroh_relay::server::testing"],[794,"iroh_relay::relay_map"],[795,"core::cmp"],[796,"iroh_base::relay_url"],[797,"core::result"],[798,"serde::de"],[799,"core::fmt"],[800,"anyhow"],[801,"alloc::sync"],[802,"core::convert"],[803,"core::iter::traits::collect"],[804,"core::option"],[805,"core::iter::traits::iterator"],[806,"serde::ser"],[807,"alloc::string"],[808,"core::any"],[809,"core::ops::function"],[810,"core::marker"],[811,"iroh_base::key"],[812,"hickory_resolver::resolver"],[813,"iroh_relay::client::conn"],[814,"tokio_tungstenite_wasm::error"],[815,"http::error"],[816,"hyper::error"],[817,"std::io::error"],[818,"core::net::socket_addr"],[819,"rustls::client::client_conn"],[820,"url"],[821,"bytes::bytes"],[822,"core::error"],[823,"core::time"],[824,"core::future::future"],[825,"http::header::value"],[826,"stun_rs::attributes"],[827,"stun_rs::attributes::stun::alternate_server"],[828,"stun_rs::error"],[829,"stun_rs::types"],[830,"stun_rs::attributes::stun::error_code"],[831,"stun_rs::attributes::stun::fingerprint"],[832,"stun_rs::attributes::stun::mapped_address"],[833,"stun_rs::attributes::stun::message_integrity"],[834,"stun_rs::attributes::stun::message_integrity_sha256"],[835,"stun_rs::attributes::stun::nonce"],[836,"stun_rs::attributes::stun::password_algorithm"],[837,"stun_rs::attributes::stun::password_algorithms"],[838,"stun_rs::attributes::stun::realm"],[839,"stun_rs::attributes::stun::software"],[840,"stun_rs::attributes::unknown"],[841,"stun_rs::attributes::stun::unknown_attributes"],[842,"stun_rs::attributes::stun::user_hash"],[843,"stun_rs::attributes::stun::user_name"],[844,"stun_rs::attributes::stun::xor_mapped_address"],[845,"stun_rs::context"],[846,"stun_rs::message"],[847,"core::hash"],[848,"alloc::vec"],[849,"iroh_quinn::endpoint"],[850,"rustls_pki_types"],[851,"iroh_relay::server::metrics"],[852,"core::default"],[853,"iroh_relay::server::resolver"],[854,"rustls::crypto::signer"],[855,"reloadable_core"],[856,"alloc::vec::into_iter"],[857,"core::pin"],[858,"core::task::wake"],[859,"core::task::poll"],[860,"tokio::io::read_buf"],[861,"std::io"],[862,"rustls::server::server_conn"],[863,"tokio_util::task::abort_on_drop"],[864,"stun_rs"],[865,"stun_rs::methods"]],"i":"````fhj210`2102102101010202`21021010210221022211100022110210222`210210222100``110`112102121021021012210Dh0```0000Df1111010011011`010111Cf12Dd123011222000230123012301023301233333012301123010110`101100001130232301230123012301NjNlNn20`````````Eh000000000000000000000000``````Fn`0Ih10Jb002``22020022212``1`222222Gd33333333303333333If3142In14253014251425142522112142253014253014253042444222555555555555555514225330014222555555555555555553012142530142530`5555555555555555```2``14252301442530142530142530142530```````Jj00000000000000```Ll`0``Lb``1`````0`Kn0KbKdLfLh32L`6KhLd43Lj8Kf;Jn985;43762:1<019920:9819819819984:9855;43762:1<0985;43762:1<09999985;43762:1<08985;43762:1<09985;43762:1<090300209855;43762:1<0985;43762:1<08898331498999;;;;;40249585999962500400`3981985;43762:1<0985;43762:1<0985;43762:1<099985;43762:1<09O`Ob``````","f":"````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00`{{{b{f}}}f}{{{b{h}}}h}{{{b{j}}}j}{{b{b{dc}}}l{}}00{{bn}l}00{{{b{h}}{b{h}}}A`}{{{b{j}}{b{j}}}A`}{{b{b{c}}}A`{}}0{{{b{f}}{b{Ab}}}Ad}{{}j}{{AbAf}f}`{Ah{{b{c}}}{}}00{Ah{{b{dc}}}{}}00{c{{Aj{h}}}Al}{c{{Aj{j}}}Al}{Ahl}00{{}f}{{{b{f}}{b{f}}}Ad}{{{b{h}}{b{h}}}Ad}{{{b{j}}{b{j}}}Ad}{{b{b{c}}}Ad{}}00000000{{{b{f}}{b{dAn}}}B`}0{{{b{h}}{b{dAn}}}B`}0{{{b{j}}{b{dAn}}}B`}{cc{}}00{e{{Bb{f}}}{{Bf{{Bd{h}}}}}{{Bj{}{{Bh{c}}}}}}{Abf}{{{b{f}}{b{Ab}}}{{Bl{{b{{Bd{h}}}}}}}}`{{}Ah}00{{}c{}}00{{{b{f}}}Ad}{{{b{f}}}Ah}{{{b{f}}}{{`{{Bn{}{{Bh{{b{{Bd{h}}}}}}}}}}}}{{{b{h}}{b{h}}}{{Bl{A`}}}}{{{b{j}}{b{j}}}{{Bl{A`}}}}````{{{b{h}}c}AjC`}{{{b{j}}c}AjC`}```{bc{}}00{bCb}0{c{{Aj{e}}}{}{}}00{{}{{Aj{c}}}{}}00{bCd}00`{{{b{f}}}{{`{{Bn{}{{Bh{{b{Ab}}}}}}}}}}{{}c{}}00``````````````````````````````{{Cfc}Cf{{Cj{}{{Ch{Ad}}}}ClCn}}{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{CfD`Db}Dd}{{{b{Df}}}Df}{{b{b{dc}}}l{}}{{bn}l}{Ddl}{{{b{dDd}}}l}{{{b{dDd}}}{{Aj{lDh}}}}{Ah{{b{c}}}{}}000{Ah{{b{dc}}}{}}000{Ahl}000{{{b{dDd}}{Dj{n}}}l}{{{b{Df}}{b{dAn}}}B`}{{{b{Dh}}{b{dAn}}}B`}0{{{b{Dd}}{b{dAn}}}B`}{{{b{Cf}}{b{dAn}}}B`}{cc{}}{DlDh}1{DnDh}{E`Dh}{EbDh}44{{}Ah}000{{CfAd}Cf}{{}c{}}000{{{b{Dd}}}Ad}2{{CfAh}Cf}{{{b{Dd}}}{{Bl{Ed}}}}{{}Ef}{cCf{{Bf{Ab}}}}{{{b{dDd}}Ad}l}{{CfEh}Cf}{{CfEj}Cf}{{{b{Dd}}}El}{{{b{dDd}}}{{Bl{{Aj{DfDh}}}}}}{{{b{dDd}}EnF`}{{Aj{lDh}}}}{{{b{dDd}}{Dj{n}}}{{Aj{lDh}}}}{{CfEl}Cf}{{Cfc}Cf{{Bf{Ab}}}}{{{b{Dh}}}{{Bl{{b{Fb}}}}}}{{{b{dDd}}}{{Aj{{`{{Ff{}{{Ch{{Aj{FdDh}}}}}}ClCn}}Dh}}}}{bc{}}{bCb}{c{{Aj{e}}}{}{}}000{{}{{Aj{c}}}{}}000{bCd}000{{}c{}}000````````````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Eh}}}Eh}{{b{b{dc}}}l{}}{{bn}l}{Ah{{b{c}}}{}}{Ah{{b{dc}}}{}}{Ahl}{{{b{Eh}}{b{Eh}}}Ad}{{b{b{c}}}Ad{}}00{{{b{Eh}}{b{dAn}}}B`}{cc{}}{{}Ah}{{}c{}}{{{b{Fh}}}{{Bl{Eh}}}}{bc{}}{c{{Aj{e}}}{}{}}{{}{{Aj{c}}}{}}{bCd}{{{b{Eh}}}{{b{Fj}}}}{{}c{}}````{{{b{{Fl{n}}}}}Ad}`````````````````````````````````{{{b{Fn}}}{{Aj{{b{G`}}Gb}}}}{{{b{Gd}}}{{b{{Dj{n}}}}}}{{{b{Fn}}}{{Aj{{b{Gf}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gh}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gj}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gl}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gn}}Gb}}}}{{{b{Fn}}}{{Aj{{b{H`}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hb}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hd}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hf}}Gb}}}}{{{b{Gd}}}{{b{{Fl{n}}}}}}{{{b{Fn}}}{{Aj{{b{Hh}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hj}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hl}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hn}}Gb}}}}{{{b{Fn}}}{{Aj{{b{I`}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Ib}}Gb}}}}{{{b{Fn}}}Id}{b{{b{c}}}{}}00000{{{b{d}}}{{b{dc}}}{}}00000{{{b{If}}}If}{{{b{Ih}}}Ih}{{{b{Gd}}}Gd}{{{b{Fn}}}Fn}{{b{b{dc}}}l{}}000{{bn}l}000{{{b{Gd}}{b{Gd}}}A`}{{b{b{c}}}A`{}}{{{b{If}}{b{{Fl{n}}}}}{{Aj{{Il{IjAh}}In}}}}{{}If}{{}Gd}{Ah{{b{c}}}{}}00{{{b{Gd}}}{{b{{Fl{n}}}}}}111{Ah{{b{dc}}}{}}00000{Ahl}00000{{{b{Ih}}{b{Ih}}}Ad}{{{b{Gd}}{b{Gd}}}Ad}{{b{b{c}}}Ad{}}00000{{{b{Fn}}}{{b{G`}}}}{{{b{Fn}}}{{b{Gf}}}}{{{b{Fn}}}{{b{Gh}}}}{{{b{Fn}}}{{b{Gj}}}}{{{b{Fn}}}{{b{Gl}}}}{{{b{Fn}}}{{b{Gn}}}}{{{b{Fn}}}{{b{H`}}}}{{{b{Fn}}}{{b{Hb}}}}{{{b{Fn}}}{{b{Hd}}}}{{{b{Fn}}}{{b{Hf}}}}{{{b{Fn}}}{{b{Hh}}}}{{{b{Fn}}}{{b{Hj}}}}{{{b{Fn}}}{{b{Hl}}}}{{{b{Fn}}}{{b{Hn}}}}{{{b{Fn}}}{{b{I`}}}}{{{b{Fn}}}{{b{Ib}}}}{{{b{If}}{b{dAn}}}{{Aj{lJ`}}}}{{{b{Ih}}{b{dAn}}}{{Aj{lJ`}}}}{{{b{Gd}}{b{dAn}}}{{Aj{lJ`}}}}0{{{b{Fn}}{b{dAn}}}{{Aj{lJ`}}}}{{{b{Jb}}{b{dAn}}}B`}0{{{b{In}}{b{dAn}}}{{Aj{lJ`}}}}0{cc{}}00{{{b{{Dj{n}}}}}Gd}{{{Dj{n}}}Gd}{H`Fn}{HhFn}{GfFn}{GhFn}{GjFn}{GlFn}8{HjFn}{IbFn}{GnFn}{I`Fn}{HbFn}{HdFn}{HfFn}{HnFn}{HlFn}{G`Fn}{cc{}}0{{{b{If}}}{{Bl{{b{Jd}}}}}}{{{b{Gd}}{b{dc}}}lJf}{{}Ah}00000{{}c{}}00000{{{b{{Fl{n}}}}}Ad}{{{b{Fn}}}Ad}000000000000000`{{{b{{Fl{n}}}}}{{Aj{GdJb}}}}{{{b{{Fl{n}}}}}{{Aj{{Il{GdEd}}Jb}}}}{{{b{Gd}}{b{Gd}}}{{Bl{A`}}}}{Gd{{Jh{n}}}}{{GdEd}{{Jh{n}}}}{bc{}}000{bCb}00{c{{Aj{e}}}{}{}}0{n{{Aj{Ih}}}}1111{{}{{Aj{c}}}{}}00000{bCd}00000{{}c{}}00000```````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{Ah{{b{c}}}{}}{Ah{{b{dc}}}{}}{Ahl}{{{b{Jj}}{b{dAn}}}B`}{cc{}}{{{b{Jj}}Ed{b{Fj}}}{{Bb{{Il{EdFd}}}}}}{{}Ah}{{}c{}}{{JlEf}{{Bb{Jj}}}}?=<;`````````````````````````:::::::::::::9999999999999````{{{b{Jn}}}{{Bl{{Jh{K`}}}}}}`{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{{b{Kf}}}Kf}{{b{b{dc}}}l{}}00{{bn}l}00`{{}Kb}{{}Kd}{{}{{Kh{ce}}}{KjKl}{KjKl}}{{}Kn}{Ah{{b{c}}}{}}00{{{b{{L`{c}}}}}{{b{e}}}Cl{}}1111111111{Ah{{b{dc}}}{}}000000000000````{Ahl}000000000000`{{{b{Kb}}{b{dAn}}}B`}{{{b{Kd}}{b{dAn}}}B`}{{{b{{L`{c}}}}{b{dAn}}}B`{KlCl}}{{{b{Lb}}{b{dAn}}}B`}{{{b{{Kh{ce}}}}{b{dAn}}}B`KlKl}{{{b{{Ld{ce}}}}{b{dAn}}}B`KlKl}{{{b{Lf}}{b{dAn}}}B`}{{{b{Lh}}{b{dAn}}}B`}{{{b{{Lj{ce}}}}{b{dAn}}}B`KlKl}{{{b{Kn}}{b{dAn}}}B`}{{{b{Kf}}{b{dAn}}}B`}{{{b{{Ll{ce}}}}{b{dAn}}}B`KlKl}{{{b{Jn}}{b{dAn}}}B`}`{cc{}}000000000000`{{{b{Jn}}}{{Bl{Ed}}}}`{{{b{Jn}}}{{Bl{Ab}}}}1`0{{}Ah}00{{cFd}{{Bb{{L`{c}}}}}{Cl{Mb{}{{Ln{M`}}}}}}1111111111{{}c{}}000000000000``{{{b{Kb}}}{{Mf{{Il{{b{Fj}}{b{Md}}}}}}}}{{{b{Kd}}}{{Mf{{Il{{b{Fj}}{b{Md}}}}}}}}````{{}{{b{Fj}}}}0```{{{Mh{{b{dLb}}}}{b{dMj}}}{{Ml{{Aj{lEb}}}}}}{{{Mh{{b{dLb}}}}{b{dMj}}{b{dMn}}}{{Ml{{N`{l}}}}}}1{{{Mh{{b{dLb}}}}{b{dMj}}{b{{Fl{n}}}}}{{Ml{{Aj{AhEb}}}}}}{{{Mh{{b{dLb}}}}{b{dMj}}{b{{Fl{Nb}}}}}{{Ml{{Aj{AhEb}}}}}}`;```{{{b{{L`{c}}}}}l{Cl{Mb{}{{Ln{M`}}}}}}`{{{b{{L`{c}}}}Nd}{{Bl{{Bd{M`}}}}}{{Mb{}{{Ln{M`}}}}ClKl}}``````{{{L`{c}}}l{Cl{Mb{}{{Ln{M`}}}}}}{Jn{{Bb{l}}}}{{{Kh{ce}}}{{Bb{Jn}}}KlKl}`{{{b{Jn}}}{{Bl{Ed}}}}{{{b{dJn}}}{{b{d{Nf{{Bb{l}}}}}}}}``{bc{}}00{c{{Aj{e}}}{}{}}000000000000{{}{{Aj{c}}}{}}000000000000{bCd}000000000000``{{}c{}}000000000000```{{}Lh}{{}{{Ld{l}}}}{{}{{Il{{Jh{K`}}Nh}}}}{{}{{Kh{l}}}}{{}Lf}{{}{{Lj{l}}}}","D":"BKb","p":[[1,"reference",null,null,1],[0,"mut"],[5,"RelayMap",0,794],[5,"RelayNode",0,794],[5,"RelayQuicConfig",0,794],[1,"unit"],[1,"u8"],[6,"Ordering",795],[5,"RelayUrl",796],[1,"bool"],[1,"u16"],[1,"usize"],[6,"Result",797,null,1],[10,"Deserializer",798],[5,"Formatter",799],[8,"Result",799],[8,"Result",800],[5,"Arc",801,null,1],[10,"Into",802],[17,"Item"],[10,"IntoIterator",803],[6,"Option",804,null,1],[10,"Iterator",805],[10,"Serializer",806],[5,"String",807],[5,"TypeId",808],[5,"ClientBuilder",103],[17,"Output"],[10,"Fn",809],[10,"Send",810],[10,"Sync",810],[5,"SecretKey",811],[8,"TokioResolver",812],[5,"Client",103],[6,"ReceivedMessage",103,813],[6,"ClientError",103],[1,"array"],[6,"Error",814],[5,"Error",815],[5,"Error",816],[5,"Error",817],[6,"SocketAddr",818],[5,"ClientConfig",819],[6,"Protocol",230],[5,"Url",820],[5,"PublicKey",811],[8,"NodeId",811],[5,"Bytes",821],[10,"Error",822],[5,"Duration",823],[10,"Future",824,null,1],[5,"HeaderValue",825],[1,"str"],[1,"slice"],[6,"StunAttribute",264,826],[5,"AlternateServer",827],[5,"StunError",828],[5,"TransactionId",264,829],[5,"ErrorCode",830],[6,"Fingerprint",831],[5,"MappedAddress",832],[6,"MessageIntegrity",833],[6,"MessageIntegritySha256",834],[5,"Nonce",835],[5,"PasswordAlgorithm",836],[5,"PasswordAlgorithms",837],[5,"Realm",838],[5,"Software",839],[5,"Unknown",840],[5,"UnknownAttributes",841],[5,"UserHash",842],[5,"UserName",843],[5,"XorMappedAddress",844],[5,"AttributeType",826],[5,"MessageDecoder",264,845],[6,"MessageClass",264,846],[5,"StunMessage",846],[1,"tuple",null,null,1],[5,"StunDecodeError",264,828],[5,"Error",799],[6,"Error",264],[5,"DecoderContext",845],[10,"Hasher",847],[5,"Vec",848],[5,"QuicClient",492],[5,"Endpoint",849],[5,"Server",511],[5,"CertificateDer",850],[5,"Metrics",511,851],[5,"StunMetrics",511,851],[5,"ClientConnRateLimit",511],[5,"ServerConfig",511],[10,"Default",852],[10,"Debug",799],[5,"Limits",511],[5,"ReloadingResolver",511,853],[6,"MaybeTlsStreamServer",511],[5,"RelayConfig",511],[5,"StunConfig",511],[5,"QuicConfig",511],[5,"TlsConfig",511],[6,"CertConfig",511],[17,"Value"],[5,"CertifiedKey",854],[10,"Loader",855],[10,"Any",808],[5,"IntoIter",856],[5,"Pin",857],[5,"Context",858],[6,"Poll",859],[5,"ReadBuf",860],[8,"Result",817],[5,"IoSlice",861],[5,"ClientHello",862],[5,"AbortOnDropHandle",863],[5,"ServerConfig",862],[15,"ReceivedPacket",219],[15,"Health",219],[15,"ServerRestarting",219],[15,"Manual",786],[15,"LetsEncrypt",786]],"r":[[0,263],[1,794],[2,794],[3,794],[126,813],[274,846],[275,845],[287,826],[288,828],[290,829],[451,864],[489,865],[490,865],[491,865],[513,853],[518,851],[523,853],[527,851]],"b":[[52,"impl-Display-for-RelayMap"],[53,"impl-Debug-for-RelayMap"],[54,"impl-Display-for-RelayNode"],[55,"impl-Debug-for-RelayNode"],[163,"impl-Display-for-ClientError"],[164,"impl-Debug-for-ClientError"],[168,"impl-From%3CError%3E-for-ClientError"],[170,"impl-From%3CError%3E-for-ClientError"],[171,"impl-From%3CError%3E-for-ClientError"],[172,"impl-From%3CError%3E-for-ClientError"],[389,"impl-Debug-for-TransactionId"],[390,"impl-Display-for-TransactionId"],[392,"impl-Display-for-Error"],[393,"impl-Debug-for-Error"],[394,"impl-Debug-for-StunDecodeError"],[395,"impl-Display-for-StunDecodeError"],[399,"impl-From%3C%26%5Bu8;+stun_rs::::types::%7Bimpl%2313%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[400,"impl-From%3C%5Bu8;+stun_rs::::types::%7Bimpl%2314%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[401,"impl-From%3CNonce%3E-for-StunAttribute"],[402,"impl-From%3CSoftware%3E-for-StunAttribute"],[403,"impl-From%3CErrorCode%3E-for-StunAttribute"],[404,"impl-From%3CFingerprint%3E-for-StunAttribute"],[405,"impl-From%3CMappedAddress%3E-for-StunAttribute"],[406,"impl-From%3CMessageIntegrity%3E-for-StunAttribute"],[408,"impl-From%3CUnknown%3E-for-StunAttribute"],[409,"impl-From%3CXorMappedAddress%3E-for-StunAttribute"],[410,"impl-From%3CMessageIntegritySha256%3E-for-StunAttribute"],[411,"impl-From%3CUserName%3E-for-StunAttribute"],[412,"impl-From%3CPasswordAlgorithm%3E-for-StunAttribute"],[413,"impl-From%3CPasswordAlgorithms%3E-for-StunAttribute"],[414,"impl-From%3CRealm%3E-for-StunAttribute"],[415,"impl-From%3CUserHash%3E-for-StunAttribute"],[416,"impl-From%3CUnknownAttributes%3E-for-StunAttribute"],[417,"impl-From%3CAlternateServer%3E-for-StunAttribute"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMEBMgABAAAABQAFAAwADAAaAAAAHQAKACkAEABBAAIASgABAFAAAQBVAA0AZQACAIcABwCQAAIAlgALAKMABACpAAAAqwACALAAAwDIAAAAygARAOwADAD6AAAA/QADAAIBAAA0AQAAPAEZAFcBAABZARoAhAEIAJABBwCZAQkApgEGAMcBAADKAR8A8QEFAPkBAAD8AQMAGQIZADkCCABDAh4AZgIMAHQCDACWAgIAmgIJALMCAQC5AgEAvgIEAMoCAADZAikABQMMAA==","P":[[4,"T"],[11,""],[14,"T"],[17,""],[22,"K"],[24,""],[28,"T"],[34,"__D"],[36,""],[43,"K"],[52,""],[57,"T"],[60,"I,"],[61,""],[67,"U"],[70,""],[79,"__S"],[84,"T"],[87,""],[89,"U,T"],[92,"U"],[95,""],[100,"V"],[133,"S"],[134,"T"],[142,""],[144,"T"],[145,""],[149,"T"],[157,""],[167,"T"],[168,""],[169,"T"],[170,""],[173,"T"],[175,""],[180,"U"],[184,""],[189,""],[190,""],[198,""],[199,""],[201,"T"],[202,""],[203,"U,T"],[207,"U"],[211,""],[215,"V"],[235,"T"],[237,""],[238,"T"],[239,""],[240,"T"],[242,""],[244,"K"],[247,""],[248,"T"],[249,""],[250,"U"],[251,""],[252,"T"],[253,"U,T"],[254,"U"],[255,""],[257,"V"],[262,""],[315,"T"],[327,""],[331,"T"],[335,""],[340,"K"],[341,""],[344,"T"],[347,""],[348,"T"],[357,""],[365,"K"],[371,""],[396,"T"],[399,""],[407,"T"],[408,""],[418,"T"],[420,""],[421,"__H"],[422,""],[428,"U"],[434,""],[457,"T"],[461,""],[464,"U,T"],[466,""],[467,"U,T"],[471,"U"],[477,""],[483,"V"],[496,"T"],[500,""],[502,"T"],[503,""],[505,"U"],[506,""],[507,"U,T"],[508,"U"],[509,""],[510,"V"],[536,"T"],[566,""],[571,"T"],[574,""],[580,"EC,EA"],[581,""],[582,"T"],[585,"Loader,Deref::Target"],[586,"T"],[613,""],[629,"Loader"],[630,""],[631,"EC,EA"],[633,""],[635,"EC,EA"],[636,""],[638,"EC,EA"],[639,""],[641,"T"],[655,""],[664,"Loader"],[665,""],[675,"U"],[690,""],[711,"Loader"],[721,""],[722,"EC,EA"],[724,""],[728,"T"],[731,"U,T"],[744,"U"],[757,""],[772,"V"],[788,""]]}],["iroh_test",{"t":"FQNNNNCNCNNNNHHHHH","n":["CallOnDrop","assert_eq_hex","borrow","borrow_mut","drop","from","hexdump","into","logging","new","try_from","try_into","type_id","parse_hexdump","print_hexdump","setup","setup_multithreaded","testing_subscriber"],"q":[[0,"iroh_test"],[13,"iroh_test::hexdump"],[15,"iroh_test::logging"],[18,"core::ops::function"],[19,"core::result"],[20,"core::any"],[21,"alloc::vec"],[22,"anyhow"],[23,"alloc::string"],[24,"core::convert"],[25,"tracing_core::dispatcher"],[26,"tracing_core::subscriber"]],"i":"``f000`0`0000`````","f":"``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{df}}}h}{cc{}}`{{}c{}}`{cfj}{c{{l{e}}}{}{}}{{}{{l{c}}}{}}{bn}{{{b{A`}}}{{Af{{Ad{Ab}}}}}}{{ce}Ah{{Al{{Aj{Ab}}}}}{{Al{{Aj{An}}}}}}{{}B`}{{}h}{{}{{`{Bb}}}}","D":"Ad","p":[[1,"reference",null,null,1],[0,"mut"],[5,"CallOnDrop",0],[1,"unit"],[10,"FnOnce",18],[6,"Result",19,null,1],[5,"TypeId",20],[1,"str"],[1,"u8"],[5,"Vec",21],[8,"Result",22],[5,"String",23],[1,"slice"],[10,"AsRef",24],[1,"usize"],[5,"DefaultGuard",25],[10,"Subscriber",26]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAgABAABAAAAAwACAAcAAAAKAAMA","P":[[2,"T"],[4,""],[5,"T"],[7,"U"],[9,""],[10,"U,T"],[11,"U"],[12,""],[14,","],[15,""]]}]]')); +var searchIndex = new Map(JSON.parse('[["bulk",{"t":"HHHHH","n":["collect_and_print","main","run_iroh","run_quinn","run_s2n"],"q":[[0,"bulk"],[5,"core::option"],[6,"struct_iterable_internal"],[7,"iroh_bench"],[8,"anyhow"],[9,"iroh_bench::s2n"]],"i":"`````","f":"{{{d{b}}{f{{d{c}}}}}hj}{{}h}{l{{n{h}}}}0{A`{{n{h}}}}","D":"`","p":[[1,"str"],[1,"reference",null,null,1],[6,"Option",5,null,1],[1,"unit"],[10,"Iterable",6],[5,"Opt",7],[8,"Result",8],[5,"Opt",9]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAUAAQAAAAUA","P":[[0,""],[1,""]]}],["iroh",{"t":"PPEPGTFIFFEFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNOCCNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNONNNNNCNNONONNNNNNNNNOOCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNCNNSSSSSCCSSSHHHHSSHHHFKFNNNNNNNNNNNNNNCNNNNNNNNNNNNNNOCOCONNNNCNNNNNNNNNNNFSSNNNNNNNNNNNNNNNNFSNNNNNNNNNNNNNNNNNSSSSFFFNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTFNNNNNNNNNNNNNNNNNNNNNNIKHMNMNMNMNMNMNMNMNMNMNCHPSGFPFNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNONONNNNNNHNNNNNNNNNNNNNTTFFFFKPFPFTTTPFPFPPFFFPGPPPPPFGGKKFKPPPFFGPPPSFFTTTPFKTTPFFTPPTTPFTTPPFFTFPPPPFGPGGFPPGFPPGFTTPGFFGPPGFPPTPPPFFPFPFPPFFPFGFFPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONONNNOOOMNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNONNONONOONOOOONNNONNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNONNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNONNNNNNNNNNNNNNNOOONOOONNNOOOHNNNONNNOOONNNNNNNNOONNOONONMNMNMNNNNNNNOOONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNONNNNNNNNOONMNNONMNNNNNNOONNNNNNNNNNNNNNNNNNNONMNNONOONOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNOOFFFFNNNNOOOOOOOOONNNNNNNNOONNNNNNNNNNNNOOONNNNNNNNNNNNOOOONNNNONNNNONNNNNNNNONNNNNNNNNNNNOOONNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOONNNNNNNNNNNNNNNNOOOOOOONNNNOKFFNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFNNNNHNNNNNNNNNNNNNNNNOONONHHHNNNNNNNNNFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Decode","DecodeInvalidLength","Endpoint","Key","KeyParsingError","LENGTH","NodeAddr","NodeId","PublicKey","RelayMap","RelayMode","RelayNode","RelayUrl","RelayUrlParseError","SecretKey","__clone_box","","","","","","as_bytes","as_ref","borrow","","","","","","","","","borrow_mut","","","","","","","","clone","","","","","","clone_into","","","","","","clone_to_uninit","","","","","","cmp","","","","compare","","","","contains_node","default_from_node","defaults","deref","","","","","","","","","deref_mut","","","","","","","","deserialize","","","","","direct_addresses","","discovery","dns","drop","","","","","","","","empty","endpoint","eq","","","","","equivalent","","","","","","","","","","","","","","","fmt","","","","","","","","","","","","","","","fmt_short","from","","","","","","","","","","","","","","","","","","","","from_bytes","","from_nodes","from_parts","from_ref","","","","","","from_str","","","from_url","generate","get_node","hash","","init","","","","","","","","into","","","","","","","","is_empty","","len","metrics","new","node_id","nodes","partial_cmp","","","","protocol","public","","quic","relay_url","","secret","serialize","","","","","sign","source","","stun_only","stun_port","test_utils","to_bytes","to_owned","","","","","","to_string","","","","","","","try_from","","","","","","","","","","","try_into","","","","","","","","type_id","","","","","","","","url","urls","verify","vzip","","","","","","","","watchable","with_direct_addresses","with_relay_url","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_METRICS_PORT","DEFAULT_RELAY_QUIC_PORT","DEFAULT_STUN_PORT","prod","staging","AP_RELAY_HOSTNAME","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_ap_relay_node","default_eu_relay_node","default_na_relay_node","default_relay_map","EU_RELAY_HOSTNAME","NA_RELAY_HOSTNAME","default_eu_relay_node","default_na_relay_node","default_relay_map","ConcurrentDiscovery","Discovery","DiscoveryItem","__clone_box","add","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","default","deref","","deref_mut","","dns","drop","","empty","fmt","","from","","","from_ref","from_services","init","","into","","last_updated","local_swarm_discovery","node_addr","pkarr","provenance","publish","","resolve","","static_provider","subscribe","","to_owned","try_from","","try_into","","type_id","","vzip","","DnsDiscovery","N0_DNS_NODE_ORIGIN_PROD","N0_DNS_NODE_ORIGIN_STAGING","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","init","into","n0_dns","new","resolve","try_from","try_into","type_id","vzip","LocalSwarmDiscovery","NAME","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","init","into","new","publish","resolve","subscribe","try_from","try_into","type_id","vzip","DEFAULT_PKARR_TTL","DEFAULT_REPUBLISH_INTERVAL","N0_DNS_PKARR_RELAY_PROD","N0_DNS_PKARR_RELAY_STAGING","PkarrPublisher","PkarrRelayClient","PkarrResolver","__clone_box","","","borrow","","","borrow_mut","","","clone","","","clone_into","","","clone_to_uninit","","","deref","","","deref_mut","","","dht","drop","","","","fmt","","","from","","","from_ref","","","init","","","into","","","n0_dns","","new","","","publish","","resolve","","to_owned","","","try_from","","","try_into","","","type_id","","","update_addr_info","vzip","","","with_options","Builder","DhtDiscovery","__clone_box","borrow","","borrow_mut","","build","builder","client","clone","clone_into","clone_to_uninit","default","","deref","","deref_mut","","dht","drop","","fmt","","from","","from_ref","include_direct_addresses","init","","initial_publish_delay","into","","n0_dns_pkarr_relay","pkarr_relay","publish","republish_delay","resolve","secret_key","to_owned","try_from","","try_into","","ttl","type_id","","vzip","","PROVENANCE","StaticProvider","add_node_addr","borrow","borrow_mut","default","deref","deref_mut","drop","fmt","from","from_node_addrs","get_node_addr","init","into","new","publish","remove_node_addr","resolve","set_node_addr","try_from","try_into","type_id","vzip","DnsResolver","ResolverExt","default_resolver","lookup_by_id","","lookup_by_id_staggered","","lookup_by_name","","lookup_by_name_staggered","","lookup_ipv4","","lookup_ipv4_ipv6","","lookup_ipv4_ipv6_staggered","","lookup_ipv4_staggered","","lookup_ipv6","","lookup_ipv6_staggered","","node_info","resolver","Addr","IROH_TXT_NAME","IrohAttr","NodeInfo","Relay","TxtAttrs","__clone_box","as_ref","attrs","borrow","","","borrow_mut","","","clone","clone_into","clone_to_uninit","cmp","compare","deref","","","deref_mut","","","direct_addresses","drop","","","eq","","equivalent","","","","","","fmt","","","","from","","","","","","from_hickory_records","","from_parts","from_pkarr_signed_packet","","from_ref","from_str","from_strings","from_z32","hash","init","","","into","","","lookup_by_id","lookup_by_name","new","node_id","","partial_cmp","relay_url","to_hickory_records","","to_owned","to_pkarr_signed_packet","","to_string","to_z32","try_from","","","","try_into","","","type_id","","","vzip","","","AEAD_LIMIT_REACHED","APPLICATION_ERROR","Accept","AcceptBi","AcceptUni","AckFrequencyConfig","AeadKey","App","ApplicationClose","ApplicationClosed","Builder","CONNECTION_ID_LIMIT_ERROR","CONNECTION_REFUSED","CRYPTO_BUFFER_EXCEEDED","CallMeMaybe","Chunk","CidsExhausted","ClosedStream","","","Connecting","Connection","ConnectionClose","ConnectionClosed","ConnectionError","ConnectionLost","","","","","ConnectionStats","ConnectionType","ControlMsg","Controller","ControllerFactory","CryptoError","CryptoServerConfig","Custom","Default","Direct","DirectAddr","DirectAddrInfo","DirectAddrType","Disabled","","Discovery","ENV_FORCE_STAGING_RELAYS","Endpoint","ExportKeyingMaterialError","FINAL_SIZE_ERROR","FLOW_CONTROL_ERROR","FRAME_ENCODING_ERROR","FinishedEarly","FrameStats","HandshakeTokenKey","INTERNAL_ERROR","INVALID_TOKEN","IllegalOrderedRead","Incoming","IncomingFuture","KEY_UPDATE_ERROR","Local","LocallyClosed","MAX","MAX_SIZE","Mixed","MtuDiscoveryConfig","NO_ERROR","NO_VIABLE_PATH","NamedApp","None","OpenBi","OpenUni","PROTOCOL_VIOLATION","PathStats","Ping","Pong","Portmapped","Read","ReadDatagram","ReadError","","ReadExactError","ReadToEndError","RecvStream","Relay","","RelayMode","RemoteInfo","Reset","","ResetError","RetryError","STREAM_LIMIT_ERROR","STREAM_STATE_ERROR","Saved","SendDatagramError","SendStream","ServerConfig","Source","Staging","Stopped","StoppedError","StreamId","Stun","Stun4LocalPort","TRANSPORT_PARAMETER_ERROR","TimedOut","TooLarge","TooLong","TransportConfig","TransportError","","TransportErrorCode","Udp","UdpStats","Unknown","UnsupportedByPeer","UnsupportedVersion","VarInt","VersionMismatch","WeakConnectionHandle","WriteError","Written","ZeroRttAccepted","ZeroRttRejected","","","","__clone_box","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","accept","","accept_bi","accept_uni","accept_with","ack_eliciting_threshold","ack_frequency","ack_frequency_config","acks","add_discovery","add_node_addr","add_node_addr_with_source","addr","","addrs","aead_from_hkdf","allow_spin","alpn","alpns","bind","bind_addr_v4","bind_addr_v6","black_hole_cooldown","black_holes_detected","borrow","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bound_sockets","build","builder","bytes","","","chunks","clear_discovery","clone","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_box","clone_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","clone_to_uninit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","close","","close_reason","closed","cmp","","","","code","compare","","","","congestion_controller_factory","congestion_events","congestion_state","conn_type","","connect","connection_close","crypto","","","crypto_buffer_size","current_mtu","cwnd","data_blocked","datagram","datagram_receive_buffer_size","datagram_send_buffer_size","datagram_send_buffer_space","datagrams","default","","","","","","","","","","","default_relay_mode","deref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","deserialize","","","","","dir","direct_addresses","discovery","","discovery_dht","discovery_local_network","discovery_n0","dns_resolver","","drop","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","enable_segmentation_offload","eq","","","","","","","","","","","","","","","","","","","","","","","","","","equivalent","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","error_code","","export_keying_material","finish","fmt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","force_staging_infra","frame","frame_rx","frame_tx","frame_type","from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_ref","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","from_u32","from_u64","from_u64_unchecked","get_remote_node_id","handshake_data","","handshake_done","has_send_address","hash","","","","","home_relay","id","","ignore","immediate_ack","incoming_buffer_size","incoming_buffer_size_total","index","init","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","initial_keys","initial_mtu","initial_rtt","initial_window","initiator","insecure_skip_relay_cert_verify","interval","into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","into_0rtt","into_any","into_future","","","","","","","","","","into_incoming","into_inner","ios","is_0rtt","is_alive","is_closed","join","","","","","","","","","keep_alive_interval","keylog","known_nodes","last_alive","last_control","last_payload","last_received","last_used","latency","","local_ip","","","lost_bytes","lost_packets","lost_plpmtud_probes","make_server_config","max_ack_delay","max_concurrent_bidi_streams","max_concurrent_uni_streams","max_data","max_datagram_size","max_idle_timeout","max_incoming","max_stream_data","max_streams_bidi","max_streams_uni","migration","min_mtu","minimum_change","mtu_discovery_config","network_change","network_path_changed","new","","new_connection_id","new_token","node_addr","node_id","","observed_addr","observed_external_addr","offset","on_ack","on_congestion_event","on_end_acks","on_mtu_update","on_sent","open","open_bi","open_uni","packet_threshold","partial_cmp","","","","path","path_challenge","path_response","peer_identity","persistent_congestion_threshold","ping","poll","","","","","","","","","poll_flush","poll_read","","poll_shutdown","poll_write","","preferred_address_v4","preferred_address_v6","priority","proxy_from_env","proxy_url","race","","","","","","","","","read","read_chunk","read_chunks","read_datagram","read_exact","read_to_end","reason","","","receive_observed_address_reports","receive_window","received_reset","refuse","relay_map","relay_mode","relay_url","remote_address","","","remote_address_validated","remote_info","remote_info_iter","reordering_threshold","reset","reset_stream","retire_connection_id","retry","retry_tag","retry_token_lifetime","rtt","","saturating_add","seal","secret_key","","send_datagram","send_datagram_wait","send_observed_address_reports","send_window","sent_packets","sent_plpmtud_probes","serialize","","","","","set_alpns","set_max_concurrent_bi_streams","set_max_concurrent_uni_streams","set_priority","set_receive_window","source","","","","","","","","sources","","stable_id","start_session","stats","stop","stop_sending","stopped","stream","stream_data_blocked","stream_receive_window","streams_blocked_bidi","streams_blocked_uni","time_threshold","to_owned","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","to_string","","","","","","","","","","","","","","","","","","","","token_key","transport","transport_config","","try_from","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_into","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","try_poll","","","","","","","typ","type_id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","udp_rx","udp_tx","upper_bound","vzip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","weak_handle","window","with_crypto","with_single_cert","write","write_all","write_all_chunks","write_chunk","write_chunks","name","","MagicsockMetrics","NetReportMetrics","PortmapMetrics","RelayMetrics","__clone_box","","","","accepts","actor_link_change","actor_tick_direct_addr_heartbeat","actor_tick_direct_addr_update_receiver","actor_tick_main","actor_tick_msg","actor_tick_other","actor_tick_portmap_changed","actor_tick_re_stun","borrow","","","","borrow_mut","","","","bytes_recv","bytes_sent","clone","","","","clone_into","","","","clone_to_uninit","","","","connection_became_direct","connection_handshake_success","conns_rx_ratelimited_total","default","","","","deref","","","","deref_mut","","","","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","drop","","","","external_address_updated","fmt","","","","frames_rx_ratelimited_total","from","","","","from_ref","","","","got_ping","init","","","","into","","","","iter","","","","local_port_updates","mapping_attempts","mapping_failures","name","","","","nodes_contacted","nodes_contacted_directly","num_direct_conns_added","num_direct_conns_removed","num_relay_conns_added","num_relay_conns_removed","other_packets_dropped","other_packets_recv","other_packets_sent","pcp_available","pcp_probes","probes_started","re_stun_calls","recv_data_ipv4","recv_data_ipv6","recv_data_relay","recv_datagrams","recv_disco_bad_key","recv_disco_bad_parse","recv_disco_call_me_maybe","recv_disco_call_me_maybe_bad_disco","recv_disco_ping","recv_disco_pong","recv_disco_relay","recv_disco_udp","recv_gro_datagrams","relay_accepts","relay_home_change","reports","reports_full","send_data","send_data_network_down","send_disco_relay","send_disco_udp","send_ipv4","send_ipv6","send_packets_dropped","send_packets_recv","send_packets_sent","send_relay","send_relay_error","sent_disco_call_me_maybe","sent_disco_ping","sent_disco_pong","sent_disco_relay","sent_disco_udp","sent_pong","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","to_owned","","","","try_from","","","","try_into","","","","type_id","","","","unique_client_keys","unknown_frames","update_direct_addrs","upnp_available","upnp_gateway_updated","upnp_probes","upnp_probes_failed","vzip","","","","websocket_accepts","ProtocolHandler","Router","RouterBuilder","__clone_box","accept","","borrow","","borrow_mut","","builder","clone","clone_into","clone_to_uninit","deref","","deref_mut","","drop","","endpoint","","fmt","","from","","from_ref","init","","into","","is_shutdown","new","shutdown","","spawn","to_owned","try_from","","try_into","","type_id","","vzip","","CleanupDropGuard","DnsPkarrServer","borrow","","borrow_mut","","create_dns_resolver","deref","","deref_mut","","discovery","dns_resolver","drop","","fmt","","from","","init","","into","","nameserver","node_origin","on_node","pkarr_url","run","run_relay_server","run_relay_server_with","run_relay_server_with_stun","run_with_origin","try_from","","try_into","","type_id","","vzip","","Disconnected","WatchInitializedFut","WatchNextFut","Watchable","Watcher","WatcherStream","__clone_box","","","borrow","","","","","","borrow_mut","","","","","","chain","clone","","","clone_into","","","clone_to_uninit","","","default","deref","","","","","","deref_mut","","","","","","drop","","","","","","fmt","","","","","","","from","","","","","","from_ref","","","get","","init","","","","","","initialized","into","","","","","","into_future","","into_stream","join","","merge","new","poll","","poll_next","race","","ratelimit_stream","ratelimit_stream_with_jitter","set","stream","stream_updates_only","to_owned","","","to_string","try_from","","","","","","try_into","","","","","","try_poll","","try_poll_next","type_id","","","","","","updated","vzip","","","","","","watch","zip"],"q":[[0,"iroh"],[279,"iroh::defaults"],[286,"iroh::defaults::prod"],[293,"iroh::defaults::staging"],[298,"iroh::discovery"],[351,"iroh::discovery::dns"],[370,"iroh::discovery::local_swarm_discovery"],[389,"iroh::discovery::pkarr"],[466,"iroh::discovery::pkarr::dht"],[515,"iroh::discovery::static_provider"],[539,"iroh::dns"],[564,"iroh::dns::node_info"],[655,"iroh::endpoint"],[2181,"iroh::endpoint::Source"],[2183,"iroh::metrics"],[2359,"iroh::protocol"],[2404,"iroh::test_utils"],[2444,"iroh::watchable"],[2576,"dyn_clone::sealed"],[2577,"iroh_base::key"],[2578,"iroh_base::node_addr"],[2579,"iroh_base::relay_url"],[2580,"iroh_relay::relay_map"],[2581,"core::cmp"],[2582,"core::result"],[2583,"serde::de"],[2584,"core::net::socket_addr"],[2585,"core::iter::traits::iterator"],[2586,"core::fmt"],[2587,"alloc::string"],[2588,"ed25519_dalek::verifying"],[2589,"signature::error"],[2590,"data_encoding"],[2591,"ed25519_dalek::signing"],[2592,"core::option"],[2593,"iroh_base::ticket::node"],[2594,"iroh::magicsock::node_map::node_state"],[2595,"url"],[2596,"url::parser"],[2597,"anyhow"],[2598,"alloc::sync"],[2599,"core::convert"],[2600,"core::iter::traits::collect"],[2601,"rand_core"],[2602,"core::hash"],[2603,"serde::ser"],[2604,"ed25519"],[2605,"core::error"],[2606,"core::any"],[2607,"alloc::boxed"],[2608,"alloc::vec"],[2609,"alloc::collections::btree::set"],[2610,"futures_lite::stream"],[2611,"pkarr::signed_packet"],[2612,"futures_core::stream"],[2613,"core::time"],[2614,"pkarr::client"],[2615,"core::future::future"],[2616,"core::net::ip_addr"],[2617,"hickory_proto::rr::domain::name"],[2618,"core::clone"],[2619,"hickory_resolver::resolver"],[2620,"alloc::collections::btree::map"],[2621,"core::str::traits"],[2622,"hickory_proto::rr::resource"],[2623,"iroh_quinn_proto::connection"],[2624,"iroh_quinn::connection"],[2625,"iroh_quinn_proto::config"],[2626,"iroh_quinn_proto::varint"],[2627,"core::ops::function"],[2628,"core::marker"],[2629,"iroh_quinn_proto::crypto"],[2630,"iroh_quinn_proto::congestion"],[2631,"std::time"],[2632,"iroh_quinn::recv_stream"],[2633,"iroh_quinn::send_stream"],[2634,"iroh_quinn_proto::connection::stats"],[2635,"iroh_quinn_proto::connection::streams::send"],[2636,"iroh_quinn_proto::connection::streams"],[2637,"iroh::magicsock::node_map"],[2638,"iroh_quinn_proto::frame"],[2639,"iroh::magicsock"],[2640,"iroh_quinn_proto"],[2641,"iroh_quinn_proto::connection::assembler"],[2642,"iroh_quinn::incoming"],[2643,"iroh_quinn_proto::connection::streams::recv"],[2644,"ring::error"],[2645,"iroh_quinn_proto::transport_parameters"],[2646,"iroh_quinn_proto::shared"],[2647,"futures_concurrency::future::join::tuple"],[2648,"core::future::into_future"],[2649,"tokio::sync::watch"],[2650,"iroh_quinn_proto::connection::paths"],[2651,"core::pin"],[2652,"core::task::wake"],[2653,"core::task::poll"],[2654,"std::io::error"],[2655,"tokio::io::read_buf"],[2656,"futures_concurrency::future::race::tuple"],[2657,"bytes::bytes"],[2658,"rustls_pki_types"],[2659,"rustls::error"],[2660,"alloc::vec::into_iter"],[2661,"futures_lite::future"],[2662,"iroh::test_utils::dns_and_pkarr_servers"],[2663,"iroh_relay::server"],[2664,"futures_concurrency::stream::chain::tuple"],[2665,"futures_concurrency::stream::into_stream"],[2666,"core::default"],[2667,"futures_concurrency::stream::merge::tuple"],[2668,"governor::state::direct"],[2669,"governor::state"],[2670,"governor::state::direct::streams"],[2671,"governor::clock::with_std"],[2672,"governor::middleware"],[2673,"governor::jitter"],[2674,"futures_concurrency::stream::zip::tuple"],[2675,"iroh_relay::defaults"],[2676,"iroh::test_utils::dns_server"]],"i":"Cb0`0`h`````````0AbAdAfAhAj55556432Cd21675430216543216543216543216431643122`675433021675430216543144``675430212`643216664443332221116677554330022116667775554444443300216524654321653252636754302167543021422`4426431`6514456543157011`5654321675302166675543021675430216754302112667543021`44``````````````````````FhFd101011101010`100101001010101`1`1Ff101`01221212121```Gj000000000000000``Gl0000000000000000```````GnH`Hb210210210210210210210`221021021021021021021210201021021021021022102``Hn0Hl10010111101010010101010100100010101101001010Ib`0000000000000000000000```IfId101010101010101010``Jf```0`Df1Jh21021011122210210121021222111221021110010010120`22102100010121101102`2210210210210A@n0`````A@f`Kn`222Ol`1`NjO````3`Nf2Nl2Ob```````AAf0A@b```419```:::Nn``;;7``;AAb:Lj03`==<3``=`::1Nh``3```4=``:<``>>=````59``22><80``<`=`28``<````:796L`91;84:72OdOfOhOjOlOnA@`Dh=A@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAf1KjL`01=OfLl1Ln66On:DhMf4Kl4444MnOhADd:AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAf5N`6AB`OdA@`0:L`NfNhNjNlNnO`ObLj:OfOhOjOlOn>DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfNdL`NfNhNjNlNnO`ObLjOdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfL`NfNhNjNlNnO`ObLjOdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfL`200Lj65480654LlOh35Dh6Of;0?32200335Od45013OjA@`A@bLhMnLn`ADd=AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfOlOnDhA@bA@f<:;:;;;;:ADdL`AEdAEbLdLbAElABdNfABfAAl0NhNjNlNnAAn0O`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfLlNfNhNjNlNnO`ObLjAB`OlOnA@`DhA@bA@dA@fKnABbA@hA@jA@lA@nAA`AAbAAdAAfNf00Nh00Nj00Nl00Nn00O`00Ob00Lj00AB`00Ol00On00A@`00Dh00A@b00A@d00A@f00Kn00ABb00A@h00A@j00A@l00A@n00AA`00AAb00AAd00AAf0076L`AAn1ABdNf0ABf0AAlNh0Nj0Nl0Nn08O`0Ob0LlLj0AB`OdOfOhOjOl0OnA@`DhA@b0A@d0A@f0Kn0LhMnLfABbABhABjA@h0A@j0A@l0A@n0AA`AAb0AAd0LnGbKhKjABlKlAAf`;Oj0>ADdL`AEdAEbLdLbAElABdNf0ABfAAlNh0Nj000Nl0Nn0AAnO`000Ob0LlLj0000AB`OdOfOhOjOlOnA@`DhA@bA@dA@fKn00LhMnLfABbABh0ABjA@h0A@jA@l000A@nAA`AAbAAd0LnGbKhKjABlKlAAfL`NfNhNjNlNnO`ObLjOdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfLj00`L`KlOfDh4A@f:987AAlAAnKj5Lf0?1AAd33??837AB`Nd0000Mh::>LjAA`AAb6Oj::>Ll;ADdAEdAEbLdLbAElKhABlKlAAnAAl0111Lf02Ln0<;:987654222L`33A@hA@jA@lLl07KjAAf7Dh72<2Gb0Lh=Of05ACl=;OhLjMh?6>>::22OlOn9A@bA@f:L`0AAn1NfNhNjNlNnO`ObKnDh=:ACl;AAlOf<00Ll110><;:9876LjOd3OhOjOlOnA@`;A@bA@dA@f?LhMnLfA@hA@jA@lA@nAA`AAbAAdGbAAfNfABfNhNjNlNnO`ObLjOlA@bA@dA@fKnA@hA@jA@lA@nAAbAAdLf00LnADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLj000AB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfAEdAEbLdLbAEl76>ADdL`65432ABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfOj0MnADdL`AEdAEbLdLbAElABdNfABfAAlNhNjNlNnAAnO`ObLlLjAB`OdOfOhOjOlOnA@`DhA@bA@dA@fKnLhMnLfABbABhABjA@hA@jA@lA@nAA`AAbAAdLnGbKhKjABlKlAAfL`NdLf0AAn0000AKjAKl````AGhAGjAGlAGn011111111321032100032103210321011032103210321000003210332100321032100321032103210333321011111100033311111111111111012211111100011111110222223210321032103210001333332100```AHjAHbAHf202022222020202020202202020120220202020``AHnAHl10`101000101010101000000```010101010``````AIjAAhAIl21AJ`AJb2AJd542130354354354355421305421305421305421300542130543545421304542130213213521321335445430542130542130213542130454213053","f":"```````````````{{bd}f}00000{{{b{h}}}{{b{{l{j}}}}}}{{{b{h}}}{{b{{n{j}}}}}}1{b{{b{c}}}{}}0000000{{{b{A`}}}{{b{A`c}}}{}}0000000{{{b{h}}}h}{{{b{Ab}}}Ab}{{{b{Ad}}}Ad}{{{b{Af}}}Af}{{{b{Ah}}}Ah}{{{b{Aj}}}Aj}{{b{b{A`c}}}f{}}00000{{bj}f}00000{{{b{h}}{b{h}}}Al}{{{b{Ad}}{b{Ad}}}Al}{{{b{Af}}{b{Af}}}Al}{{{b{Aj}}{b{Aj}}}Al}{{b{b{c}}}Al{}}000{{{b{Ah}}{b{Af}}}An}{{AfB`}Ah}`{Bb{{b{c}}}{}}0000{{{b{Af}}}b}111{Bb{{b{A`c}}}{}}0000000{c{{Bd{h}}}Bf}{c{{Bd{Ab}}}Bf}{c{{Bd{Ad}}}Bf}{c{{Bd{Af}}}Bf}{c{{Bd{Aj}}}Bf}{{{b{Ad}}}{{`{{Bl{}{{Bh{{b{Bj}}}}}}}}}}```{Bbf}0000000{{}Ah}`{{{b{h}}{b{h}}}An}{{{b{Ad}}{b{Ad}}}An}{{{b{Af}}{b{Af}}}An}{{{b{Ah}}{b{Ah}}}An}{{{b{Aj}}{b{Aj}}}An}{{b{b{c}}}An{}}00000000000000{{{b{h}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Cb}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ab}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ad}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Af}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Cd}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ah}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Aj}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{h}}}Cf}{Chh}{cc{}}{CjCb}1{ClCb}{{{l{j}}}Ab}3{CnAb}4{hAd}{{{Db{h{D`{Af}}{b{{n{Bj}}}}}}}Ad}{DdAd}{DfAd}{DhAd}9{DjAf}:{DlCd};;{{{b{{l{j}}}}}{{Bd{hCj}}}}{{{b{{l{j}}}}}Ab}{e{{Bd{AhDn}}}{{Eb{{E`{Aj}}}}}{{Ed{}{{Bh{c}}}}}}{{h{D`{Af}}c}Ad{{Ed{}{{Bh{Bj}}}}}}{{{b{c}}}c{}}00000{{{b{Ef}}}{{Bd{h}}}}{{{b{Ef}}}{{Bd{Ab}}}}{{{b{Ef}}}{{Bd{Af}}}}{AfAh}{cAbEh}{{{b{Ah}}{b{Af}}}{{D`{{b{{E`{Aj}}}}}}}}{{{b{h}}{b{A`c}}}fEj}{{{b{Af}}{b{A`c}}}fEj}{{}Bb}0000000{{}c{}}0000000{{{b{Ad}}}An}{{{b{Ah}}}An}{{{b{Ah}}}Bb}`{hAd}`{{{b{Ah}}}{{`{{Bl{}{{Bh{{b{{E`{Aj}}}}}}}}}}}}{{{b{h}}{b{h}}}{{D`{Al}}}}{{{b{Ad}}{b{Ad}}}{{D`{Al}}}}{{{b{Af}}{b{Af}}}{{D`{Al}}}}{{{b{Aj}}{b{Aj}}}{{D`{Al}}}}`{{{b{h}}}Ch}{{{b{Ab}}}h}`{{{b{Ad}}}{{D`{{b{Af}}}}}}`{{{b{Ab}}}{{b{Cn}}}}{{{b{h}}c}BdEl}{{{b{Ab}}c}BdEl}{{{b{Ad}}c}BdEl}{{{b{Af}}c}BdEl}{{{b{Aj}}c}BdEl}{{{b{Ab}}{b{{n{j}}}}}En}{{{b{Cb}}}{{D`{{b{F`}}}}}}{{{b{Cd}}}{{D`{{b{F`}}}}}}```{{{b{Ab}}}{{l{j}}}}{bc{}}00000{bCf}000000{c{{Bd{e}}}{}{}}{{{b{{n{j}}}}}{{Bd{h}}}}{{{b{{l{j}}}}}{{Bd{h}}}}22{{{b{{n{j}}}}}{{Bd{Ab}}}}33333{{}{{Bd{c}}}{}}0000000{bFb}0000000`{{{b{Ah}}}{{`{{Bl{}{{Bh{{b{Af}}}}}}}}}}{{{b{h}}{b{{n{j}}}}{b{En}}}{{Bd{fCj}}}}{{}c{}}0000000`{{Adc}Ad{{Ed{}{{Bh{Bj}}}}}}{{AdAf}Ad}``````````{{}Aj}00{{}Ah}``110```{{bd}f}{{{b{A`Fd}}c}fFf}{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{{{b{Fh}}}Fh}{{b{b{A`c}}}f{}}{{bj}f}{{}Fd}{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0`{Bbf}03{{{b{Fh}}{b{A`Bn}}}Fj}{{{b{Fd}}{b{A`Bn}}}Fj}{cc{}}0{cFd{{Ed{}{{Bh{{Fl{Ff}}}}}}}}{{{b{c}}}c{}}{{{Fn{{Fl{Ff}}}}}Fd}{{}Bb}0{{}c{}}0`````{{{b{Ff}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Fd}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Ff}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{{b{Fd}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}`{{{b{Ff}}}{{D`{{Gh{Fh}}}}}}{{{b{Fd}}}{{D`{{Gh{Fh}}}}}}{bc{}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{bFb}0{{}c{}}0```{b{{b{c}}}{}}{{{b{A`}}}{{b{A`c}}}{}}{Bb{{b{c}}}{}}{Bb{{b{A`c}}}{}}{Bbf}{{{b{Gj}}{b{A`Bn}}}Fj}{cc{}}{{}Bb}{{}c{}}{{}Gj}{CfGj}{{{b{Gj}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}?>=<``;:987{{{b{Gl}}{b{A`Bn}}}Fj}654{Gd{{Gf{Gl}}}}{{{b{Gl}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Gl}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{{b{Gl}}}{{D`{{Gh{Fh}}}}}}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bFb}{{}c{}}```````{{bd}f}00{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00{{{b{Gn}}}Gn}{{{b{H`}}}H`}{{{b{Hb}}}Hb}{{b{b{A`c}}}f{}}00{{bj}f}00{Bb{{b{c}}}{}}00{Bb{{b{A`c}}}{}}00`{Bbf}{{{b{A`Gn}}}f}11{{{b{Gn}}{b{A`Bn}}}Fj}{{{b{H`}}{b{A`Bn}}}Fj}{{{b{Hb}}{b{A`Bn}}}Fj}{cc{}}00{{{b{c}}}c{}}00{{}Bb}00{{}c{}}00{AbGn}{{}H`}{{AbDj}Gn}{DjH`}{DjHb}{{{b{Gn}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}{{{b{Hb}}{b{Hd}}}{{Gf{f}}}}{{{b{H`}}GbGd}{{D`{{Hf{{Gf{Fh}}}}}}}}{{{b{Hb}}Gd}{{Gf{Hd}}}}{bc{}}00{c{{Bd{e}}}{}{}}00{{}{{Bd{c}}}{}}00{bFb}007{{}c{}}00{{AbDjHhHj}Gn}``{{bd}f}{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{Hl{{Gf{Hn}}}}{{}Hl}{{HlI`}Hl}{{{b{Hn}}}Hn}{{b{b{A`c}}}f{}}{{bj}f}{{}Hn}5{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0{{HlAn}Hl}{Bbf}0{{{b{Hn}}{b{A`Bn}}}Fj}{{{b{Hl}}{b{A`Bn}}}Fj}{cc{}}0{{{b{c}}}c{}}5{{}Bb}0{{HlHj}Hl}{{}c{}}0{HlHl}{{HlDj}Hl}{{{b{Hn}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}4{{{b{Hn}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{HlAb}Hl}{bc{}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{{HlHh}Hl}{bFb}0{{}c{}}0``{{{b{Ib}}c}f{{Eb{Ad}}}}{b{{b{c}}}{}}{{{b{A`}}}{{b{A`c}}}{}}{{}Ib}{Bb{{b{c}}}{}}{Bb{{b{A`c}}}{}}{Bbf}{{{b{Ib}}{b{A`Bn}}}Fj}{cc{}}{eIb{{Eb{Ad}}}{{Ed{}{{Bh{c}}}}}}{{{b{Ib}}Gd}{{D`{Ad}}}}{{}Bb}{{}c{}}9{{{b{Ib}}{D`{{b{Af}}}}{b{{G`{Bj}}}}}f}3{{{b{Ib}}GbGd}{{D`{{Gh{{Gf{Fh}}}}}}}}{{{b{Ib}}c}{{D`{Ad}}}{{Eb{Ad}}}}{c{{Bd{e}}}{}{}}{{}{{Bd{c}}}{}}{bFb}{{}c{}}``{{}{{b{Id}}}}{{{b{If}}{b{Gd}}{b{Ef}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Gd}}{b{Ef}}}{{Gf{Ad}}}}{{{b{If}}{b{Gd}}{b{Ef}}{b{{n{Il}}}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Gd}}{b{Ef}}{b{{n{Il}}}}}{{Gf{Ad}}}}{{{b{If}}{b{Ef}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Ef}}}{{Gf{Ad}}}}{{{b{If}}{b{Ef}}{b{{n{Il}}}}}{{`{{Ij{}{{Ih{{Gf{Ad}}}}}}}}}}{{{b{Id}}{b{Ef}}{b{{n{Il}}}}}{{Gf{Ad}}}}{{{b{If}}cHj}{{`{{Ij{}{{Ih{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}}}}}}}J`}{{{b{Id}}cHj}{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}J`}{{{b{If}}cHj}{{`{{Ij{}{{Ih{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}}}}}}}{J`Jb}}{{{b{Id}}cHj}{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}{J`Jb}}{{{b{If}}cHj{b{{n{Il}}}}}{{`{{Ij{}{{Ih{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}}}}}}}{J`Jb}}{{{b{Id}}cHj{b{{n{Il}}}}}{{Gf{{`{{Bl{}{{Bh{In}}}}}}}}}{J`Jb}}105410`{{}{{b{Jd}}}}``````{{bd}f}{{{b{Jf}}}{{b{Ef}}}}{{{b{{Jh{c}}}}}{{b{{Jj{c{Fn{Cf}}}}}}}{JlJnK`Kb}}{b{{b{c}}}{}}00{{{b{A`}}}{{b{A`c}}}{}}00{{{b{Df}}}Df}{{b{b{A`c}}}f{}}{{bj}f}{{{b{Jf}}{b{Jf}}}Al}{{b{b{c}}}Al{}}{Bb{{b{c}}}{}}00{Bb{{b{A`c}}}{}}00`{Bbf}00{{{b{Jf}}{b{Jf}}}An}{{{b{Df}}{b{Df}}}An}{{b{b{c}}}An{}}00000{{{b{Jf}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Jf}}{b{A`Bn}}}Fj}{{{b{Df}}{b{A`Bn}}}Fj}{{{b{{Jh{c}}}}{b{A`Bn}}}FjKd}{cc{}}0{{{Jh{Jf}}}Df}{{{b{{Jh{Jf}}}}}Df}2{{{b{Df}}}{{Jh{Jf}}}}{{{b{{n{Kf}}}}}{{Gf{Df}}}}{{{b{{n{Kf}}}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{Gde}{{Jh{c}}}{JlJnK`Kb}{{Bl{}{{Bh{{Db{cCf}}}}}}}}{{{b{Hd}}}{{Gf{Df}}}}{{{b{Hd}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{{b{c}}}c{}}{{{b{Ef}}}{{Bd{Jfc}}}{}}{{Gdc}{{Gf{{Jh{e}}}}}{{Bl{}{{Bh{Cf}}}}}{JlJnK`Kb}}{{{b{Ef}}}{{Gf{Gd}}}}{{{b{Jf}}{b{A`c}}}fEj}{{}Bb}00{{}c{}}00{{{b{Jd}}{b{Gd}}{b{Ef}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{{b{Jd}}{b{Ef}}}{{Gf{{Jh{c}}}}}{JlJnK`Kb}}{{Gd{D`{Dj}}{G`{Bj}}}Df}{{{b{{Jh{c}}}}}Gd{JlJnK`Kb}}`{{{b{Jf}}{b{Jf}}}{{D`{Al}}}}`{{{b{Df}}{b{Ef}}Hh}{{Gf{{`{{Bl{}{{Bh{Kf}}}}}}}}}}{{{b{{Jh{c}}}}{b{Ef}}Hh}{{Gf{{`{{Bl{}{{Bh{Kf}}}}}}}}}{JlJnK`Kb}}{bc{}}{{{b{Df}}{b{Ab}}Hh}{{Gf{Hd}}}}{{{b{{Jh{c}}}}{b{Ab}}Hh}{{Gf{Hd}}}{JlJnK`Kb}}{bCf}{{{b{Gd}}}Cf}{{{b{Ef}}}{{Bd{Jfc}}}{}}{c{{Bd{e}}}{}{}}00{{}{{Bd{c}}}{}}00{bFb}00{{}c{}}00`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````{{bd}f}00000000000000000000000000000000{{{b{Gb}}}Kh}{Kj{{Gf{KlKn}}}}{{{b{L`}}}Lb}{{{b{L`}}}Ld}{{Kj{E`{Lf}}}{{Gf{KlKn}}}}{{{b{A`Lh}}Lj}{{b{A`Lh}}}}`{{{b{A`Ll}}{D`{Lh}}}{{b{A`Ll}}}}`{{Lne}LnFf{{M`{{b{Ab}}}{{Ih{{D`{c}}}}}}MbMd}}{{{b{Gb}}Ad}{{Gf{f}}}}{{{b{Gb}}Ad{b{Ef}}}{{Gf{f}}}}```{{{b{Mf}}{b{{n{j}}}}}{{Fl{Mh}}}}{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{A`Kl}}}{{Gf{{Fn{j}}}}}}{{Ln{Fn{{Fn{j}}}}}Ln}{Ln{{Gf{Gb}}}}{{LnMj}Ln}{{LnMl}Ln}{{{b{A`Mn}}Hj}{{b{A`Mn}}}}`{b{{b{c}}}{}}0000000000000000000000000000000000000000000000000000{{{b{A`}}}{{b{A`c}}}{}}0000000000000000000000000000000000000000000000000000{{{b{Gb}}}{{Db{Bj{D`{Bj}}}}}}{{{E`{N`}}NbB`}{{Fl{Nd}}}}{{}Ln}````{LnLn}{{{b{L`}}}L`}{{{b{Nf}}}Nf}{{{b{Nh}}}Nh}{{{b{Nj}}}Nj}{{{b{Nl}}}Nl}{{{b{Nn}}}Nn}{{{b{O`}}}O`}{{{b{Ob}}}Ob}{{{b{Lj}}}Lj}{{{b{Od}}}Od}{{{b{Of}}}Of}{{{b{Oh}}}Oh}{{{b{Oj}}}Oj}{{{b{Ol}}}Ol}{{{b{On}}}On}{{{b{A@`}}}A@`}{{{b{Dh}}}Dh}{{{b{A@b}}}A@b}{{{b{A@d}}}A@d}{{{b{A@f}}}A@f}{{{b{Kn}}}Kn}{{{b{Lh}}}Lh}{{{b{Mn}}}Mn}{{{b{Lf}}}Lf}{{{b{A@h}}}A@h}{{{b{A@j}}}A@j}{{{b{A@l}}}A@l}{{{b{A@n}}}A@n}{{{b{AA`}}}AA`}{{{b{AAb}}}AAb}{{{b{AAd}}}AAd}{{{b{Gb}}}Gb}{{{b{AAf}}}AAf}{{{b{Nd}}}{{Fl{Nd}}}}{{b{b{A`c}}}f{}}00000000000000000000000000000000{{bj}f}00000000000000000000000000000000{{{b{L`}}Lj{b{{n{j}}}}}f}{{{b{Gb}}}{{Gf{f}}}}{{{b{L`}}}{{D`{Kn}}}}{{{b{L`}}}Kn}{{{b{Lj}}{b{Lj}}}Al}{{{b{AA`}}{b{AA`}}}Al}{{{b{AAb}}{b{AAb}}}Al}{{{b{AAd}}{b{AAd}}}Al}`{{b{b{c}}}Al{}}000{{{b{A`Ll}}{E`{N`}}}{{b{A`Ll}}}}`{{{b{L`}}}{{Fl{Nd}}}}{{{b{Gb}}Gd}{{Gf{{AAh{A@b}}}}}}`{{{b{Gb}}c{b{{n{j}}}}}{{Gf{L`}}}{{Eb{Ad}}}}`{jA@n}``{{{b{A`Ll}}Bb}{{b{A`Ll}}}}````{{{b{A`Ll}}{D`{Bb}}}{{b{A`Ll}}}}1{{{b{L`}}}Bb}`{{}Ll}{{}Lj}{{}Od}{{}Of}{{}Oh}{{}Oj}{{}A@`}{{}A@b}{{}Lh}{{}Mn}{{}Ln}{{}AAf}{Bb{{b{c}}}{}}0000000000000000000000000000000000000000000000000000{Bb{{b{A`c}}}{}}0000000000000000000000000000000000000000000000000000{c{{Bd{Ol}}}Bf}{c{{Bd{On}}}Bf}{c{{Bd{Dh}}}Bf}{c{{Bd{A@b}}}Bf}{c{{Bd{A@f}}}Bf}{AAdAAj}{{{b{Gb}}}{{AAh{{D`{{G`{AA`}}}}}}}}{{Ln{Fl{Ff}}}Ln}{{{b{Gb}}}{{D`{{b{Ff}}}}}}{LnLn}00{{LnId}Ln}{{{b{Gb}}}{{b{Id}}}}{Bbf}000000000{{{b{A`AAl}}}f}11111{{{b{A`AAn}}}f}22222222222222222222222222222222222222{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{Nf}}{b{Nf}}}An}{{{b{Nh}}{b{Nh}}}An}{{{b{Nj}}{b{Nj}}}An}{{{b{Nl}}{b{Nl}}}An}{{{b{Nn}}{b{Nn}}}An}{{{b{O`}}{b{O`}}}An}{{{b{Ob}}{b{Ob}}}An}{{{b{Lj}}{b{Lj}}}An}{{{b{AB`}}{b{AB`}}}An}{{{b{Ol}}{b{Ol}}}An}{{{b{On}}{b{On}}}An}{{{b{A@`}}{b{A@`}}}An}{{{b{Dh}}{b{Dh}}}An}{{{b{A@b}}{b{A@b}}}An}{{{b{A@d}}{b{A@d}}}An}{{{b{A@f}}{b{A@f}}}An}{{{b{Kn}}{b{Kn}}}An}{{{b{ABb}}{b{ABb}}}An}{{{b{A@h}}{b{A@h}}}An}{{{b{A@j}}{b{A@j}}}An}{{{b{A@l}}{b{A@l}}}An}{{{b{A@n}}{b{A@n}}}An}{{{b{AA`}}{b{AA`}}}An}{{{b{AAb}}{b{AAb}}}An}{{{b{AAd}}{b{AAd}}}An}{{{b{AAf}}{b{AAf}}}An}{{b{b{c}}}An{}}00000000000000000000000000000000000000000000000000000000000000000000000000000``{{{b{L`}}{b{A`{n{j}}}}{b{{n{j}}}}{b{{n{j}}}}}{{Bd{fABb}}}}{{{b{A`AAn}}}{{Bd{fA@d}}}}{{{b{L`}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABd}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Nf}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{ABf}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AAl}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Nh}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Nj}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Nl}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Nn}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AAn}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{O`}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ob}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ll}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Lj}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AB`}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Od}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Of}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Oh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Oj}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Ol}}{b{A`Bn}}}Fj}0{{{b{On}}{b{A`Bn}}}Fj}{{{b{A@`}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Dh}}{b{A`Bn}}}Fj}{{{b{A@b}}{b{A`Bn}}}Fj}0{{{b{A@d}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@f}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{A@f}}{b{A`Bn}}}Fj}{{{b{Kn}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Lh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Mn}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{Lf}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABb}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{ABj}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{A@h}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@j}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@l}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{A@n}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{AA`}}{b{A`Bn}}}Fj}{{{b{AAb}}{b{A`Bn}}}Fj}0{{{b{AAd}}{b{A`Bn}}}{{Bd{fC`}}}}0{{{b{Ln}}{b{A`Bn}}}Fj}{{{b{Gb}}{b{A`Bn}}}Fj}{{{b{Kh}}{b{A`Bn}}}Fj}{{{b{Kj}}{b{A`Bn}}}Fj}{{{b{ABl}}{b{A`Bn}}}Fj}{{{b{Kl}}{b{A`Bn}}}Fj}{{{b{AAf}}{b{A`Bn}}}Fj}{{}An}````{cc{}}0000000{KnNf}111{NjNh}22{NlNj}{KnNj}{ABnNj}{KnNl}6{NjNn}77{A@dO`}8{ObO`}{KnO`}:{KnOb};{B`Lj}<{jLj}{AAdLj}{HhLj}????????????{AC`Kn}{A@lKn}{cc{}}0000{ACbABh}111{A@lA@h}2{A@nA@l}{ACdA@l}4{ACfA@l}5555{LjAAd}6666666{{{b{c}}}c{}}00000000000000000000000000000000:{Il{{Bd{LjACh}}}}{IlLj}{{{b{L`}}}{{Gf{h}}}}{{{b{L`}}}{{D`{{Fl{ACj}}}}}}{{{b{A`Kl}}}{{Gf{{Fl{ACj}}Kn}}}}`{{{b{Dh}}}An}{{{b{Lj}}{b{A`c}}}fEj}{{{b{A@f}}{b{A`c}}}fEj}{{{b{AA`}}{b{A`c}}}fEj}{{{b{AAb}}{b{A`c}}}fEj}{{{b{AAd}}{b{A`c}}}fEj}{{{b{Gb}}}{{AAh{{D`{Af}}}}}}{{{b{AAl}}}AAd}{{{b{AAn}}}AAd}{Kjf}`{{{b{A`Lf}}Il}{{b{A`Lf}}}}0{AAdIl}{{}Bb}0000000000000000000000000000000000000000000000000000{{{b{ACl}}Hh{b{ACn}}}{{Bd{AD`ABj}}}}{{{b{A`Ll}}B`}{{b{A`Ll}}}}{{{b{A`Ll}}Hj}{{b{A`Ll}}}}{{{b{Nd}}}Il}{AAdADb}{{LnAn}Ln}{{{b{A`Mn}}Hj}{{b{A`Mn}}}}{{}c{}}0000000000000000000000000000000000000000000000000000{Kl{{Gf{{Db{L`ADd}}Kl}}}}{{{Fl{Nd}}}{{Fl{ACj}}}}{{}}000000{Kjc{}}11{ABfADf}{LjIl}`{{{b{AAl}}}An}{{{b{ABd}}}An}{{{b{Gb}}}An}{c{{ADh{e}}}ADjIj}00000000{{{b{A`Ll}}{D`{Hj}}}{{b{A`Ll}}}}={{Ln{Fn{Ad}}}Ln}```{{{b{Dh}}}{{D`{Hj}}}}```{{{b{L`}}}{{D`{In}}}}{{{b{Kj}}}{{D`{In}}}}{{{b{Kl}}}{{D`{In}}}}```{{{b{Ab}}{Fn{{Fn{j}}}}{E`{Ll}}An}{{Gf{Lf}}}}{{{b{A`Lh}}{D`{Hj}}}{{b{A`Lh}}}}{{{b{A`Ll}}Lj}{{b{A`Ll}}}}0`{{{b{L`}}}{{D`{Bb}}}}{{{b{A`Ll}}{D`{ADl}}}{{b{A`Ll}}}}{{{b{A`Lf}}Bb}{{b{A`Lf}}}}```{{{b{A`Lf}}An}{{b{A`Lf}}}}{{{b{A`Ll}}B`}{{b{A`Ll}}}}{{{b{A`Mn}}B`}{{b{A`Mn}}}}{{{b{A`Ll}}{D`{Mn}}}{{b{A`Ll}}}}{{{b{Gb}}}f}{{{b{ABd}}}An}{{{E`{ACl}}{E`{Mf}}}Lf}{{ADbAAjIl}AAd}``{{{b{Gb}}}{{Gf{Ad}}}}{{{b{Gb}}}Gd}``{{{b{L`}}}{{ADn{{D`{Bj}}}}}}`{{{b{A`Nd}}NbNbIlAn{b{AE`}}}f}{{{b{A`Nd}}NbNbAnIl}f}{{{b{A`Nd}}NbIlAn{D`{Il}}}f}{{{b{A`Nd}}B`}f}{{{b{A`Nd}}NbIlIl}f}{{{b{Mh}}{b{A`{n{j}}}}{b{{n{j}}}}}{{Bd{{b{A`{n{j}}}}ABh}}}}{{{b{L`}}}AEb}{{{b{L`}}}AEd}{{{b{A`Ll}}Hh}{{b{A`Ll}}}}{{{b{Lj}}{b{Lj}}}{{D`{Al}}}}{{{b{AA`}}{b{AA`}}}{{D`{Al}}}}{{{b{AAb}}{b{AAb}}}{{D`{Al}}}}{{{b{AAd}}{b{AAd}}}{{D`{Al}}}}```{{{b{L`}}}{{D`{{Fl{ACj}}}}}}5`{{{AEf{{b{A`ADd}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`AEd}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`AEb}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`Ld}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`Lb}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`AEl}}}}{b{A`AEh}}}AEj}{{{AEf{{b{A`Kh}}}}{b{A`AEh}}}{{AEj{c}}}{}}{{{AEf{{b{A`ABl}}}}{b{A`AEh}}}{{AEj{c}}}{}}{{{AEf{{b{A`Kl}}}}{b{A`AEh}}}{{AEj{c}}}{}}{{{AEf{{b{A`AAn}}}}{b{A`AEh}}}{{AEj{{Bd{fAEn}}}}}}{{{b{A`AAl}}{b{A`AEh}}{b{A`{n{j}}}}}{{AEj{{Bd{BbNj}}}}}}{{{AEf{{b{A`AAl}}}}{b{A`AEh}}{b{A`AF`}}}{{AEj{{Bd{fAEn}}}}}}2{{{AEf{{b{A`AAn}}}}{b{A`AEh}}{b{{n{j}}}}}{{AEj{{Bd{BbAEn}}}}}}{{{AEf{{b{A`AAn}}}}{b{A`AEh}}{b{{n{j}}}}}{{AEj{{Bd{BbO`}}}}}}{{{b{A`Lf}}{D`{Mj}}}{{b{A`Lf}}}}{{{b{A`Lf}}{D`{Ml}}}{{b{A`Lf}}}}{{{b{AAn}}}{{Bd{AFbA@d}}}}{LnLn}{{LnDj}Ln}{e{{AFd{cg}}}{}{{ADj{}{{Ih{c}}}}}{{Ij{}{{Ih{c}}}}}}00000000{{{b{A`AAl}}{b{A`{n{j}}}}}{{Bd{{D`{Bb}}Nj}}}}{{{b{A`AAl}}BbAn}{{Bd{{D`{AB`}}Nj}}}}{{{b{A`AAl}}{b{A`{n{AFf}}}}}{{Bd{{D`{Bb}}Nj}}}}{{{b{L`}}}AEl}{{{b{A`AAl}}{b{A`{n{j}}}}}{{Bd{fNn}}}}{{{b{A`AAl}}Bb}{{Bd{{Fn{j}}Nh}}}}```{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{A`Ll}}Lj}{{b{A`Ll}}}}{{{b{A`AAl}}}{{Bd{{D`{Lj}}Nl}}}}{Kjf}{{{b{AAf}}}Ah}{{LnAAf}Ln}`{{{b{L`}}}Bj}{{{b{Kj}}}Bj}{{{b{Kl}}}Bj}{{{b{Kj}}}An}{{{b{Gb}}Gd}{{D`{Dh}}}}{{{b{Gb}}}{{`{{Bl{}{{Bh{Dh}}}}}}}}{{{b{A`Lh}}Lj}{{b{A`Lh}}}}{{{b{A`AAn}}Lj}{{Bd{fA@d}}}}``{Kj{{Gf{fABf}}}}{{{b{ACl}}Hh{b{ACn}}{b{{n{j}}}}}{{l{j}}}}{{{b{A`Lf}}Hj}{{b{A`Lf}}}}{{{b{L`}}}Hj}`{{Ljc}Lj{{Eb{Lj}}}}{{{b{Mh}}{b{A`{Fn{j}}}}{b{{n{j}}}}}{{Bd{fABh}}}}{{LnAb}Ln}{{{b{Gb}}}{{b{Ab}}}}{{{b{L`}}AFf}{{Bd{fNf}}}}{{{b{L`}}AFf}AFh}{{{b{A`Ll}}An}{{b{A`Ll}}}}{{{b{A`Ll}}Il}{{b{A`Ll}}}}``{{{b{Ol}}c}BdEl}{{{b{On}}c}BdEl}{{{b{Dh}}c}BdEl}{{{b{A@b}}c}BdEl}{{{b{A@f}}c}BdEl}{{{b{Gb}}{Fn{{Fn{j}}}}}{{Gf{f}}}}{{{b{L`}}Lj}f}0{{{b{AAn}}AFb}{{Bd{fA@d}}}}1{{{b{Nf}}}{{D`{{b{F`}}}}}}{{{b{Nh}}}{{D`{{b{F`}}}}}}{{{b{Nj}}}{{D`{{b{F`}}}}}}{{{b{Nl}}}{{D`{{b{F`}}}}}}{{{b{Nn}}}{{D`{{b{F`}}}}}}{{{b{O`}}}{{D`{{b{F`}}}}}}{{{b{Ob}}}{{D`{{b{F`}}}}}}{{{b{Kn}}}{{D`{{b{F`}}}}}}{{{b{Dh}}}{{Fn{{Db{A@fHj}}}}}}`{{{b{L`}}}Bb}{{{E`{ACl}}Hh{b{AFj}}}{{Fl{AFl}}}}{{{b{L`}}}Oj}{{{b{A`AAl}}Lj}{{Bd{fA@d}}}}`{{{b{A`AAn}}}{{Bd{{D`{Lj}}Ob}}}}``{{{b{A`Ll}}Lj}{{b{A`Ll}}}}``{{{b{A`Ll}}AFn}{{b{A`Ll}}}}{bc{}}00000000000000000000000000000000{bCf}0000000000000000000{{{b{A`Lf}}{E`{Mf}}}{{b{A`Lf}}}}`{{{b{A`Lf}}{E`{Ll}}}{{b{A`Lf}}}}{{LnLl}Ln}{c{{Bd{e}}}{}{}}000000000000000000{Il{{Bd{LjACh}}}}1{AG`{{Bd{LjACh}}}}{Bb{{Bd{LjACh}}}}333333333333333333333333333333333{{}{{Bd{c}}}{}}0000000000000000000000000000000000000000000000000000{{{AEf{{b{A`c}}}}{b{A`AEh}}}AEj{}}000000`{bFb}0000000000000000000000000000000000000000000000000000``{{{b{A`Mn}}B`}{{b{A`Mn}}}}{{}c{}}0000000000000000000000000000000000000000000000000000{{{b{L`}}}ABd}{{{b{Nd}}}Il}{{{E`{ACl}}}Lf}{{{Fn{AGb}}AGd}{{Bd{LfAGf}}}}{{{b{A`AAn}}{b{{n{j}}}}}{{Bd{BbO`}}}}{{{b{A`AAn}}{b{{n{j}}}}}{{Bd{fO`}}}}{{{b{A`AAn}}{b{A`{n{AFf}}}}}{{Bd{fO`}}}}{{{b{A`AAn}}AFf}{{Bd{fO`}}}}{{{b{A`AAn}}{b{A`{n{AFf}}}}}{{Bd{A@`O`}}}}``````{{bd}f}000`````````{b{{b{c}}}{}}000{{{b{A`}}}{{b{A`c}}}{}}000``{{{b{AGh}}}AGh}{{{b{AGj}}}AGj}{{{b{AGl}}}AGl}{{{b{AGn}}}AGn}{{b{b{A`c}}}f{}}000{{bj}f}000```{{}AGh}{{}AGj}{{}AGl}{{}AGn}{Bb{{b{c}}}{}}000{Bb{{b{A`c}}}{}}000````{Bbf}000`{{{b{AGh}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{AGj}}{b{A`Bn}}}{{Bd{fC`}}}}{{{b{AGl}}{b{A`Bn}}}Fj}{{{b{AGn}}{b{A`Bn}}}{{Bd{fC`}}}}`{cc{}}000{{{b{c}}}c{}}000`{{}Bb}000{{}c{}}000{{{b{AGh}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}{{{b{AGj}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}{{{b{AGl}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}{{{b{AGn}}}{{AH`{{Db{{b{Ef}}{b{ACj}}}}}}}}```{{}{{b{Ef}}}}000````````````````````````````````````````````````````{bc{}}000{c{{Bd{e}}}{}{}}000{{}{{Bd{c}}}{}}000{bFb}000```````{{}c{}}000````{{bd}f}{{{b{AHb}}Kl}{{AHd{{Gf{f}}}}}}{{AHfce}AHf{{AHh{{n{j}}}}}AHb}{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{GbAHf}{{{b{AHj}}}AHj}{{b{b{A`c}}}f{}}{{bj}f}{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0{Bbf}0{{{b{AHj}}}{{b{Gb}}}}{{{b{AHf}}}{{b{Gb}}}}{{{b{AHj}}{b{A`Bn}}}Fj}{{{b{AHf}}{b{A`Bn}}}Fj}{cc{}}0{{{b{c}}}c{}}{{}Bb}0{{}c{}}0{{{b{AHj}}}An}?{{{b{AHb}}}{{AHd{f}}}}{{{b{AHj}}}{{Gf{f}}}}{AHf{{Gf{AHj}}}}{bc{}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{bFb}0{{}c{}}0``{b{{b{c}}}{}}0{{{b{A`}}}{{b{A`c}}}{}}0{Bj{{Gf{Jd}}}}{Bb{{b{c}}}{}}0{Bb{{b{A`c}}}{}}0{{{b{AHl}}Ab}{{Fl{Fd}}}}{{{b{AHl}}}Id}{Bbf}0{{{b{AHn}}{b{A`Bn}}}Fj}{{{b{AHl}}{b{A`Bn}}}Fj}{cc{}}0{{}Bb}0{{}c{}}0``{{{b{AHl}}{b{Gd}}Hj}{{Gf{f}}}}`{{}{{Gf{AHl}}}}{{}{{Gf{{Db{AhAfAI`}}}}}}{{{D`{AIb}}An}{{Gf{{Db{AhAfAI`}}}}}}1{Cf{{Gf{AHl}}}}{c{{Bd{e}}}{}{}}0{{}{{Bd{c}}}{}}0{bFb}0{{}c{}}0``````{{bd}f}00{b{{b{c}}}{}}00000{{{b{A`}}}{{b{A`c}}}{}}00000{e{{AId{g}}}{}{{AIf{}{{Bh{c}}}}}{{AIh{}{{Bh{c}}}}}}{{{b{{AIj{c}}}}}{{AIj{c}}}{}}{{{b{{AAh{c}}}}}{{AAh{c}}}Jb}{{{b{{AIl{c}}}}}{{AIl{c}}}Jb}{{b{b{A`c}}}f{}}00{{bj}f}00{{}{{AIj{c}}}AIn}{Bb{{b{c}}}{}}00000{Bb{{b{A`c}}}{}}00000{Bbf}00000{{{b{{AIj{c}}}}{b{A`Bn}}}FjKd}{{{b{{AAh{c}}}}{b{A`Bn}}}FjKd}{{{b{{AJ`{c}}}}{b{A`Bn}}}FjKd}{{{b{{AJb{c}}}}{b{A`Bn}}}FjKd}{{{b{{AIl{c}}}}{b{A`Bn}}}FjKd}{{{b{AJd}}{b{A`Bn}}}Fj}0{cc{}}00000{{{b{c}}}c{}}00{{{b{{AIj{c}}}}}c{JbAJf}}{{{b{{AAh{c}}}}}{{Bd{cAJd}}}{JbAJf}}{{}Bb}00000{{{b{A`{AAh{{D`{c}}}}}}}{{AJb{c}}}{JbAJf}}{{}c{}}00000{{}}0{{}c{}}{c{{ADh{e}}}ADjIj}0{e{{AJh{cg}}}{}{{AIf{}{{Bh{c}}}}}{{AIh{}{{Bh{c}}}}}}{c{{AIj{c}}}{JbAJf}}{{{AEf{{b{A`{AJ`{c}}}}}}{b{A`AEh}}}{{AEj{e}}}{JbAJf}{}}{{{AEf{{b{A`{AJb{c}}}}}}{b{A`AEh}}}{{AEj{e}}}{JbAJf}{}}{{{AEf{{b{A`{AIl{c}}}}}}{b{A`AEh}}}{{AEj{{D`{e}}}}}{JbAJf}{}}{e{{AFd{cg}}}{}{{ADj{}{{Ih{c}}}}}{{Ij{}{{Ih{c}}}}}}0{{{b{{AJl{AJjceg}}}}}{{AJn{iceg}}}AK`AKbAKd{}}{{{b{{AJl{AJjceg}}}}AKf}{{AJn{iceg}}}AK`AKbAKd{}}{{{b{{AIj{c}}}}c}{{Bd{cc}}}{JbAJf}}{{{AAh{c}}}{{AIl{c}}}{JbAJf}}0{bc{}}00{bCf}{c{{Bd{e}}}{}{}}00000{{}{{Bd{c}}}{}}00000{{{AEf{{b{A`c}}}}{b{A`AEh}}}AEj{}}0{{{AEf{{b{A`c}}}}{b{A`AEh}}}{{AEj{{D`{Bd}}}}}{}}{bFb}00000{{{b{A`{AAh{c}}}}}{{AJ`{c}}}{JbAJf}}{{}c{}}00000{{{b{{AIj{c}}}}}{{AAh{c}}}{JbAJf}}{e{{AKh{g}}}{}{{AIf{}{{Bh{c}}}}}{{AIh{}{{Bh{c}}}}}}","D":"FD`","p":[[1,"reference",null,null,1],[5,"Private",2576],[1,"unit"],[5,"PublicKey",0,2577],[1,"u8"],[1,"array"],[1,"slice"],[0,"mut"],[5,"SecretKey",0,2577],[5,"NodeAddr",0,2578],[5,"RelayUrl",0,2579],[5,"RelayMap",0,2580],[5,"RelayNode",0,2580],[6,"Ordering",2581],[1,"bool"],[1,"u16"],[1,"usize"],[6,"Result",2582,null,1],[10,"Deserializer",2583],[17,"Item"],[6,"SocketAddr",2584],[10,"Iterator",2585],[5,"Formatter",2586],[5,"Error",2586],[6,"KeyParsingError",0,2577],[5,"RelayUrlParseError",0,2579],[5,"String",2587],[5,"VerifyingKey",2588],[5,"Error",2589],[5,"DecodeError",2590],[5,"SigningKey",2591],[6,"Option",2592,null,1],[1,"tuple",null,null,1],[5,"NodeTicket",2593],[5,"NodeInfo",564],[5,"RemoteInfo",655,2594],[5,"Url",2595],[6,"ParseError",2596],[5,"Error",2597],[5,"Arc",2598,null,1],[10,"Into",2599],[10,"IntoIterator",2600],[1,"str"],[10,"CryptoRngCore",2601],[10,"Hasher",2602],[10,"Serializer",2603],[5,"Signature",2604],[10,"Error",2605],[5,"TypeId",2606],[5,"ConcurrentDiscovery",298],[10,"Discovery",298],[5,"DiscoveryItem",298],[8,"Result",2586],[5,"Box",2607,null,1],[5,"Vec",2608],[5,"BTreeSet",2609],[5,"Endpoint",655],[8,"NodeId",0,2577],[8,"Result",2597],[8,"Boxed",2610],[5,"DnsDiscovery",351],[5,"LocalSwarmDiscovery",370],[5,"PkarrPublisher",389],[5,"PkarrResolver",389],[5,"PkarrRelayClient",389],[5,"SignedPacket",2611],[8,"BoxStream",2612],[1,"u32"],[5,"Duration",2613],[5,"Builder",466],[5,"DhtDiscovery",466],[5,"PkarrClient",2614],[5,"StaticProvider",515],[8,"DnsResolver",539],[10,"ResolverExt",539],[17,"Output"],[10,"Future",2615,null,1],[1,"u64"],[6,"IpAddr",2616],[10,"IntoName",2617],[10,"Clone",2618],[8,"TokioResolver",2619],[6,"IrohAttr",564],[5,"TxtAttrs",564],[5,"BTreeMap",2620],[10,"FromStr",2621],[10,"Display",2586],[10,"Hash",2602],[10,"Ord",2581],[10,"Debug",2586],[5,"Record",2622],[5,"Accept",655],[5,"Incoming",655],[5,"Connecting",655],[6,"ConnectionError",655,2623],[5,"Connection",655,2624],[5,"AcceptBi",655,2624],[5,"AcceptUni",655,2624],[5,"ServerConfig",655,2625],[5,"AckFrequencyConfig",655,2625],[5,"VarInt",655,2626],[5,"TransportConfig",655,2625],[5,"Builder",655],[10,"FnOnce",2627],[10,"Send",2628],[10,"Sync",2628],[10,"HandshakeTokenKey",655,2629],[10,"AeadKey",655,2629],[5,"SocketAddrV4",2584],[5,"SocketAddrV6",2584],[5,"MtuDiscoveryConfig",655,2625],[10,"ControllerFactory",655,2630],[5,"Instant",2631],[10,"Controller",655,2630],[6,"SendDatagramError",655,2624],[6,"ReadToEndError",655,2632],[6,"ReadError",655,2632],[6,"ResetError",655,2632],[6,"ReadExactError",655,2632],[6,"WriteError",655,2633],[6,"StoppedError",655,2633],[5,"UdpStats",655,2634],[5,"FrameStats",655,2634],[5,"PathStats",655,2634],[5,"ConnectionStats",655,2634],[6,"ControlMsg",655,2594],[5,"DirectAddrInfo",655,2594],[5,"Written",655,2635],[6,"ConnectionType",655,2594],[5,"ClosedStream",655,2636],[6,"Source",655,2637],[5,"ConnectionClose",655,2638],[5,"ApplicationClose",655,2638],[5,"TransportError",655],[5,"TransportErrorCode",655],[5,"DirectAddr",655,2639],[6,"DirectAddrType",655,2639],[5,"StreamId",655,2640],[6,"RelayMode",655],[5,"Watcher",2444],[6,"Dir",2640],[5,"RecvStream",655,2632],[5,"SendStream",655,2633],[5,"Chunk",655,2641],[5,"ExportKeyingMaterialError",655,2629],[5,"WeakConnectionHandle",655,2624],[5,"RetryError",655,2642],[5,"CryptoError",655,2629],[5,"UnsupportedVersion",655,2629],[5,"IncomingFuture",655],[6,"ReadableError",2643],[6,"Close",2638],[5,"Unspecified",2644],[5,"InvalidFrame",2638],[6,"Error",2645],[5,"VarIntBoundsExceeded",2626],[10,"Any",2606],[10,"CryptoServerConfig",655],[5,"ConnectionId",2646],[5,"Keys",2629],[6,"Side",2640],[5,"ZeroRttAccepted",655,2624],[5,"Incoming",2642],[5,"Join2",2647],[10,"IntoFuture",2648],[5,"IdleTimeout",2625],[5,"Receiver",2649],[5,"RttEstimator",2650],[5,"OpenBi",655,2624],[5,"OpenUni",655,2624],[5,"Pin",2651],[5,"Context",2652],[6,"Poll",2653],[5,"ReadDatagram",655,2624],[5,"Error",2654],[5,"ReadBuf",2655],[1,"i32"],[5,"Race2",2656],[5,"Bytes",2657],[5,"SendDatagram",2624],[5,"TransportParameters",2645],[10,"Session",2629],[1,"f32"],[1,"u128"],[5,"CertificateDer",2658],[6,"PrivateKeyDer",2658],[6,"Error",2659],[5,"PortmapMetrics",2183],[5,"NetReportMetrics",2183],[5,"MagicsockMetrics",2183],[5,"RelayMetrics",2183],[5,"IntoIter",2660],[10,"ProtocolHandler",2359],[8,"Boxed",2661],[5,"RouterBuilder",2359],[10,"AsRef",2599],[5,"Router",2359],[5,"DnsPkarrServer",2404,2662],[5,"CleanupDropGuard",2404],[5,"Server",2663],[5,"StunConfig",2663],[5,"Chain2",2664],[10,"IntoStream",2665],[10,"Stream",2612],[5,"Watchable",2444],[5,"WatcherStream",2444],[10,"Default",2666],[5,"WatchNextFut",2444],[5,"WatchInitializedFut",2444],[5,"Disconnected",2444],[10,"Eq",2581],[5,"Merge2",2667],[6,"NotKeyed",2668],[5,"RateLimiter",2669],[5,"RatelimitedStream",2670],[10,"DirectStateStore",2668],[10,"ReasonablyRealtime",2671],[10,"RateLimitingMiddleware",2672],[5,"Jitter",2673],[5,"Zip2",2674],[15,"Discovery",2181],[15,"NamedApp",2181]],"r":[[2,655],[4,2577],[6,2578],[7,2577],[8,2577],[9,2580],[10,655],[11,2580],[12,2579],[13,2579],[14,2577],[282,2675],[283,2675],[658,2624],[659,2624],[660,2625],[661,2629],[663,2638],[670,2641],[672,2636],[676,2624],[677,2638],[679,2623],[685,2634],[686,2594],[687,2594],[688,2630],[689,2630],[690,2629],[695,2639],[696,2594],[697,2639],[703,2629],[708,2634],[709,2629],[721,2625],[726,2624],[727,2624],[729,2634],[734,2624],[735,2632],[737,2632],[738,2632],[739,2632],[743,2594],[746,2632],[747,2642],[751,2624],[752,2633],[753,2625],[754,2637],[757,2633],[758,2640],[765,2625],[770,2634],[773,2629],[774,2626],[776,2624],[777,2633],[778,2635],[779,2624],[2405,2662],[2410,2676]],"b":[[125,"impl-Debug-for-PublicKey"],[126,"impl-Display-for-PublicKey"],[127,"impl-Debug-for-KeyParsingError"],[128,"impl-Display-for-KeyParsingError"],[129,"impl-Debug-for-SecretKey"],[130,"impl-Display-for-SecretKey"],[132,"impl-Display-for-RelayUrl"],[133,"impl-Debug-for-RelayUrl"],[134,"impl-Display-for-RelayUrlParseError"],[135,"impl-Debug-for-RelayUrlParseError"],[136,"impl-Debug-for-RelayMap"],[137,"impl-Display-for-RelayMap"],[138,"impl-Display-for-RelayNode"],[139,"impl-Debug-for-RelayNode"],[143,"impl-From%3CError%3E-for-KeyParsingError"],[145,"impl-From%3CDecodeError%3E-for-KeyParsingError"],[146,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[148,"impl-From%3CSigningKey%3E-for-SecretKey"],[150,"impl-From%3CPublicKey%3E-for-NodeAddr"],[151,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[152,"impl-From%3CNodeTicket%3E-for-NodeAddr"],[153,"impl-From%3CNodeInfo%3E-for-NodeAddr"],[154,"impl-From%3CRemoteInfo%3E-for-NodeAddr"],[239,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[240,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[602,"impl-Display-for-IrohAttr"],[603,"impl-Debug-for-IrohAttr"],[608,"impl-From%3CTxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[609,"impl-From%3C%26TxtAttrs%3CIrohAttr%3E%3E-for-NodeInfo"],[1385,"impl-Display-for-SendDatagramError"],[1386,"impl-Debug-for-SendDatagramError"],[1387,"impl-Display-for-RetryError"],[1388,"impl-Debug-for-RetryError"],[1390,"impl-Debug-for-ReadToEndError"],[1391,"impl-Display-for-ReadToEndError"],[1392,"impl-Debug-for-ReadError"],[1393,"impl-Display-for-ReadError"],[1394,"impl-Display-for-ResetError"],[1395,"impl-Debug-for-ResetError"],[1396,"impl-Debug-for-ReadExactError"],[1397,"impl-Display-for-ReadExactError"],[1399,"impl-Display-for-WriteError"],[1400,"impl-Debug-for-WriteError"],[1401,"impl-Debug-for-StoppedError"],[1402,"impl-Display-for-StoppedError"],[1404,"impl-Debug-for-VarInt"],[1405,"impl-Display-for-VarInt"],[1411,"impl-Debug-for-ControlMsg"],[1412,"impl-Display-for-ControlMsg"],[1416,"impl-Display-for-ConnectionType"],[1417,"impl-Debug-for-ConnectionType"],[1418,"impl-Debug-for-ClosedStream"],[1419,"impl-Display-for-ClosedStream"],[1420,"impl-Display-for-Source"],[1421,"impl-Debug-for-Source"],[1422,"impl-Display-for-ConnectionError"],[1423,"impl-Debug-for-ConnectionError"],[1430,"impl-Debug-for-ConnectionClose"],[1431,"impl-Display-for-ConnectionClose"],[1432,"impl-Display-for-ApplicationClose"],[1433,"impl-Debug-for-ApplicationClose"],[1434,"impl-Display-for-TransportError"],[1435,"impl-Debug-for-TransportError"],[1436,"impl-Display-for-TransportErrorCode"],[1437,"impl-Debug-for-TransportErrorCode"],[1439,"impl-Display-for-DirectAddrType"],[1440,"impl-Debug-for-DirectAddrType"],[1441,"impl-Display-for-StreamId"],[1442,"impl-Debug-for-StreamId"],[1470,"impl-From%3CResetError%3E-for-ReadError"],[1471,"impl-From%3CConnectionError%3E-for-ReadError"],[1472,"impl-From%3CReadableError%3E-for-ReadError"],[1478,"impl-From%3CClosedStream%3E-for-WriteError"],[1480,"impl-From%3CStoppedError%3E-for-WriteError"],[1481,"impl-From%3CConnectionError%3E-for-WriteError"],[1485,"impl-From%3Cu16%3E-for-VarInt"],[1487,"impl-From%3Cu8%3E-for-VarInt"],[1488,"impl-From%3CStreamId%3E-for-VarInt"],[1489,"impl-From%3Cu32%3E-for-VarInt"],[1502,"impl-From%3CClose%3E-for-ConnectionError"],[1503,"impl-From%3CTransportError%3E-for-ConnectionError"],[1515,"impl-From%3CTransportErrorCode%3E-for-TransportError"],[1516,"impl-From%3CInvalidFrame%3E-for-TransportError"],[1518,"impl-From%3CError%3E-for-TransportError"],[1797,"impl-RecvStream"],[1798,"impl-AsyncRead-for-RecvStream"],[1800,"impl-AsyncWrite-for-SendStream"],[1801,"impl-SendStream"],[1965,"impl-TryFrom%3Cu64%3E-for-VarInt"],[1967,"impl-TryFrom%3Cu128%3E-for-VarInt"],[1968,"impl-TryFrom%3Cusize%3E-for-VarInt"],[2499,"impl-Debug-for-Disconnected"],[2500,"impl-Display-for-Disconnected"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPAGowADAAAACwAAABAABQAXACsARgAVAGAABwBqACIAjgAAAJAAAACSAAEAlQAAAJcAAQCaAAEAnQAAAJ8AAACmAAgAsgAJAMsAAwDWAAQA3AABAOIAJwANAQcALgEAADABCwA9AQEAQAEBAEQBAQBHAQEAUQEAAFMBAABWAQkAYwEFAGoBAABuAQQAdQEFAHwBAAB/AQYAjQEXAKYBBgCwAQUAvgEAAMABAADCAQsAzwECANUBBADdAQgA5wEDAO0BAADvAQEA9gEAAPgBAAD6AQQAAAIDAAcCBgARAgAAFAIAABYCAAAYAgMAKAIAADACAAA7AgEAPgIQAFACDgBhAgEAZAIAAGoCAQBuAgMAegIAAH4CAACBAgAAgwIMABEDIAA4AwAAOgMAAEoDaQC8AyAA3gNBACQEAwApBAMAMwQAADUEAAA6BAEAQAQKAEwEbgDEBDYA/ARnAGgFQgC4BQAAvAUAAL8FAwDEBQAAxwUAAMkFAQDMBQAAzgUAANAFAgDfBQEA5gUAAOoFAADsBQEA7wUAAPQFAAD8BSAAIwYAACUGBAAuBgAAMgY0AKUGCQC1BggA0gYAANYGAgDhBgEA5gYAAPIGAwD3BgEA+wYKAAcHAgAQBwgAMQcBAEIHBABMBwcAWgcAAFwHAQBfBwEAYgc0AJsHEgCvBwAAsgdcABAINABICDQAjAgDAJEIDwCjCAsAsggLAMIICADQCAMA1QgDAN0ICgDxCAYA+QgHAAMJCAAPCQYAFwkUAC4JCAA7CQAAPgkDAEMJCABOCQEAUgkCAFwJCABnCQMAbAkDAHIJAwB4CQEAhQkHAJMJMgDMCQIA0QkFAN4JBQDlCQYA7wkYAAkKBQAQCgAA","P":[[24,"T"],[40,""],[46,"T"],[52,""],[62,"K"],[66,""],[69,"T"],[74,""],[75,"T"],[86,"D"],[88,"__D"],[91,""],[110,"K"],[125,""],[142,"T"],[143,""],[144,"T"],[145,""],[147,"T"],[148,""],[149,"T"],[150,""],[155,"T"],[156,""],[157,"T"],[158,""],[159,"T"],[161,""],[163,"I,"],[164,""],[165,"T"],[171,""],[175,"R"],[176,""],[177,"H"],[178,"__H"],[179,""],[187,"U"],[195,""],[213,"S"],[215,"__S"],[218,""],[225,"T"],[231,""],[238,"U,T"],[239,""],[241,"U,T"],[243,""],[244,"U,T"],[249,"U"],[257,""],[268,"V"],[277,""],[278,""],[302,""],[303,"T"],[307,""],[308,"T"],[309,""],[311,"T"],[316,""],[321,"T"],[325,""],[328,"U"],[335,""],[342,"T"],[343,"U,T"],[345,"U"],[347,""],[349,"V"],[354,"T"],[358,""],[360,"T"],[361,""],[362,"U"],[363,""],[366,"U,T"],[367,"U"],[368,""],[369,"V"],[372,"T"],[376,""],[378,"T"],[379,""],[380,"U"],[381,""],[385,"U,T"],[386,"U"],[387,""],[388,"V"],[396,""],[399,"T"],[405,""],[408,"T"],[411,""],[414,"T"],[421,""],[428,"T"],[434,""],[437,"U"],[440,""],[449,"T"],[452,"U,T"],[455,"U"],[458,""],[462,"V"],[465,""],[469,"T"],[473,""],[477,"T"],[478,""],[481,"T"],[485,""],[490,"T"],[493,""],[497,"U"],[499,""],[505,"T"],[506,"U,T"],[508,"U"],[510,""],[513,"V"],[517,""],[518,"T"],[520,""],[521,"T"],[523,""],[525,"T"],[526,","],[527,""],[529,"U"],[530,""],[534,""],[535,"U,T"],[536,"U"],[537,""],[538,"V"],[541,""],[550,"N"],[563,""],[572,"T"],[579,""],[580,"T"],[581,""],[583,"K"],[584,"T"],[591,""],[596,"K"],[602,""],[605,"T"],[608,""],[610,"T"],[611,""],[613,"T"],[614,"T,"],[615,""],[616,"T"],[618,"FromStr::Err"],[619,",T"],[620,""],[621,"__H"],[622,""],[625,"U"],[628,"T"],[630,""],[631,"T"],[633,""],[636,"T"],[638,""],[639,"T"],[640,""],[642,"TryFrom::Error"],[643,"U,T"],[646,"U"],[649,""],[652,"V"],[784,""],[826,"D,F"],[827,""],[841,"T"],[947,""],[989,"T"],[1022,""],[1064,"K"],[1068,""],[1073,""],[1075,""],[1099,"T"],[1205,"__D"],[1210,""],[1301,"K"],[1381,""],[1455,"T"],[1463,""],[1464,"T"],[1467,""],[1468,"T"],[1470,""],[1474,"T"],[1475,""],[1476,"T"],[1478,""],[1479,"T"],[1480,""],[1482,"T"],[1483,""],[1484,"T"],[1485,""],[1486,"T"],[1487,""],[1490,"T"],[1502,""],[1504,"T"],[1509,""],[1510,"T"],[1513,""],[1514,"T"],[1515,""],[1517,"T"],[1518,""],[1519,"T"],[1523,""],[1524,"T"],[1564,""],[1572,"__H"],[1577,""],[1645,"U"],[1698,""],[1707,"IntoFuture::IntoFuture"],[1708,""],[1716,"F2,F1"],[1725,""],[1793,"Future::Output"],[1796,""],[1807,"T,S2,F1"],[1816,""],[1847,""],[1848,""],[1857,"__S"],[1862,""],[1889,"T"],[1922,""],[1946,"U,T"],[1965,""],[1966,"U,T"],[1967,""],[1969,"U,T"],[2002,"U"],[2055,"F"],[2063,""],[2119,"V"],[2172,""],[2200,"T"],[2210,""],[2214,"T"],[2218,""],[2229,"T"],[2241,""],[2251,"T"],[2260,""],[2264,"U"],[2268,""],[2331,"T"],[2335,"U,T"],[2339,"U"],[2343,""],[2354,"V"],[2362,""],[2364,",T"],[2365,"T"],[2369,""],[2371,"T"],[2372,""],[2373,"T"],[2377,""],[2383,"T"],[2386,""],[2388,"U"],[2390,""],[2395,"T"],[2396,"U,T"],[2398,"U"],[2400,""],[2402,"V"],[2406,"T"],[2410,""],[2411,"T"],[2415,""],[2421,"T"],[2423,""],[2425,"U"],[2429,""],[2436,"U,T"],[2438,"U"],[2440,""],[2442,"V"],[2450,""],[2453,"T"],[2465,"T,S2,S1"],[2466,"T"],[2472,""],[2475,"T"],[2488,""],[2494,"T"],[2499,""],[2501,"T"],[2512,""],[2518,"T"],[2519,"U"],[2525,""],[2527,"S"],[2528,"F2,F1"],[2530,"T,S2,S1"],[2531,"T"],[2532,"T,Future::Output"],[2534,"T,Stream::Item"],[2535,"T,S2,F1"],[2537,"D,C,MW,S"],[2539,"T"],[2545,""],[2546,"U,T"],[2552,"U"],[2558,"F"],[2560,"S"],[2561,""],[2567,"T"],[2568,"V"],[2574,"T"],[2575,"T,S2,S1"]]}],["iroh_base",{"t":"TPPPGTFIFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNONNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPGTPFPKPNNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNNNNNNNNNNO","n":["BYTE_SIZE","Decode","DecodeInvalidLength","Key","KeyParsingError","LENGTH","NodeAddr","NodeId","PublicKey","RelayUrl","RelayUrlParseError","SecretKey","Signature","as_bytes","as_ref","borrow","","","","","","","","borrow_mut","","","","","","","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","cmp","","","deref","deserialize","","","","","direct_addresses","","eq","","","","fmt","","","","","","","","","","","","","","","fmt_short","from","","","","","","","","","","","","","","","","","","","","from_bytes","","","from_components","from_parts","from_slice","from_str","","","","generate","hash","","into","","","","","","","is_empty","new","node_id","partial_cmp","","","public","","r_bytes","relay_url","","s_bytes","secret","serialize","","","","","sign","source","","ticket","to_bytes","","","to_owned","","","","","to_string","","","","","","to_vec","try_from","","","","","","","","","","","try_into","","","","","","","type_id","","","","","","","verify","with_direct_addresses","with_relay_url","Encoding","Error","KIND","Kind","NodeTicket","Postcard","Ticket","Verify","borrow","","borrow_mut","","clone","clone_into","clone_to_uninit","deserialize","","eq","fmt","","","","from","","","","","from_bytes","","from_str","into","","new","node_addr","serialize","","source","to_bytes","","to_owned","to_string","","try_from","","try_into","","type_id","","expected"],"q":[[0,"iroh_base"],[181,"iroh_base::ticket"],[229,"iroh_base::ticket::Error"],[230,"iroh_base::key"],[231,"ed25519"],[232,"iroh_base::node_addr"],[233,"iroh_base::relay_url"],[234,"core::cmp"],[235,"core::result"],[236,"serde::de"],[237,"core::net::socket_addr"],[238,"core::iter::traits::iterator"],[239,"core::fmt"],[240,"alloc::string"],[241,"ed25519_dalek::signature"],[242,"ed25519_dalek::verifying"],[243,"ed25519_dalek::errors"],[244,"data_encoding"],[245,"ed25519_dalek::signing"],[246,"core::option"],[247,"iroh_base::ticket::node"],[248,"url"],[249,"url::parser"],[250,"core::iter::traits::collect"],[251,"signature::error"],[252,"rand_core"],[253,"core::hash"],[254,"serde::ser"],[255,"core::error"],[256,"alloc::vec"],[257,"core::any"],[258,"postcard::error"]],"i":"nBl00`b```````002001A`AbAdBn645321064321643216432142116432122642166664455332110046666445553332222110064362664313416453210222421436226364321350`6636432164531066644453321064532106453210422El`Ej1`1`1Db202000100002200222100020010210002020202F`","f":"`````````````{{{d{b}}}{{d{{h{f}}}}}}{{{d{b}}}{{d{{j{f}}}}}}{d{{d{c}}}{}}2000000{{{d{l}}}{{d{lc}}}{}}000000{{{d{n}}}n}{{{d{b}}}b}{{{d{A`}}}A`}{{{d{Ab}}}Ab}{{{d{Ad}}}Ad}{{d{d{lc}}}Af{}}0000{{df}Af}0000{{{d{b}}{d{b}}}Ah}{{{d{Ab}}{d{Ab}}}Ah}{{{d{Ad}}{d{Ad}}}Ah}{{{d{Ad}}}{{d{c}}}{}}{c{{Aj{n}}}Al}{c{{Aj{b}}}Al}{c{{Aj{A`}}}Al}{c{{Aj{Ab}}}Al}{c{{Aj{Ad}}}Al}{{{d{Ab}}}{{`{{Bb{}{{An{{d{B`}}}}}}}}}}`{{{d{n}}{d{n}}}Bd}{{{d{b}}{d{b}}}Bd}{{{d{Ab}}{d{Ab}}}Bd}{{{d{Ad}}{d{Ad}}}Bd}{{{d{n}}{d{lBf}}}{{Aj{AfBh}}}}000{{{d{b}}{d{lBf}}}Bj}0{{{d{Bl}}{d{lBf}}}Bj}0{{{d{A`}}{d{lBf}}}Bj}0{{{d{Ab}}{d{lBf}}}Bj}{{{d{Ad}}{d{lBf}}}Bj}0{{{d{Bn}}{d{lBf}}}Bj}0{{{d{b}}}C`}{cc{}}{{{d{{h{f}}}}}n}{{{h{f}}}n}{Cbn}3{Cdb}4{CfBl}{ChBl}{{{h{f}}}A`}7{CjA`}{{{Cn{b{Cl{Ad}}{d{{j{B`}}}}}}}Ab}{D`Ab}{DbAb};{DdAd}<{DfBn}=<{{{d{{h{f}}}}}{{Aj{bCf}}}}{{{d{{h{f}}}}}A`}{{{h{f}}{h{f}}}n}{{b{Cl{Ad}}c}Ab{{Dh{}{{An{B`}}}}}}{{{d{{j{f}}}}}{{Aj{nDj}}}}{{{d{Dl}}}{{Aj{nDj}}}}{{{d{Dl}}}{{Aj{bc}}}{}}{{{d{Dl}}}{{Aj{A`c}}}{}}{{{d{Dl}}}{{Aj{Adc}}}{}}{cA`Dn}{{{d{b}}{d{lc}}}AfE`}{{{d{Ad}}{d{lc}}}AfE`}{{}c{}}000000{{{d{Ab}}}Bd}{bAb}`{{{d{b}}{d{b}}}{{Cl{Ah}}}}{{{d{Ab}}{d{Ab}}}{{Cl{Ah}}}}{{{d{Ad}}{d{Ad}}}{{Cl{Ah}}}}{{{d{b}}}Cd}{{{d{A`}}}b}{{{d{n}}}{{d{{h{f}}}}}}{{{d{Ab}}}{{Cl{{d{Ad}}}}}}`1{{{d{A`}}}{{d{Cj}}}}{{{d{n}}c}AjEb}{{{d{b}}c}AjEb}{{{d{A`}}c}AjEb}{{{d{Ab}}c}AjEb}{{{d{Ad}}c}AjEb}{{{d{A`}}{d{{j{f}}}}}n}{{{d{Bl}}}{{Cl{{d{Ed}}}}}}{{{d{Bn}}}{{Cl{{d{Ed}}}}}}`{{{d{n}}}{{h{f}}}}0{{{d{A`}}}{{h{f}}}}{dc{}}0000{dC`}00000{{{d{n}}}{{Ef{f}}}}{c{{Aj{e}}}{}{}}{{{d{{j{f}}}}}{{Aj{nDj}}}}{{{d{{j{f}}}}}{{Aj{bc}}}{}}{{{d{{h{f}}}}}{{Aj{bc}}}{}}333{{{d{{j{f}}}}}{{Aj{A`c}}}{}}444{{}{{Aj{c}}}{}}000000{dEh}000000{{{d{b}}{d{{j{f}}}}{d{n}}}{{Aj{AfCf}}}}{{Abc}Ab{{Dh{}{{An{B`}}}}}}{{AbAd}Ab}````````{d{{d{c}}}{}}0{{{d{l}}}{{d{lc}}}{}}0{{{d{Db}}}Db}{{d{d{lc}}}Af{}}{{df}Af}{{{d{Dl}}}{{Aj{EjEl}}}}{c{{Aj{Db}}}Al}{{{d{Db}}{d{Db}}}Bd}{{{d{Db}}{d{lBf}}}Bj}0{{{d{El}}{d{lBf}}}Bj}0{cc{}}{AbDb}1{ChEl}{EnEl}{{{d{{j{f}}}}}{{Aj{EjEl}}}}{{{d{{j{f}}}}}{{Aj{DbEl}}}}{{{d{Dl}}}{{Aj{Dbc}}}{}}{{}c{}}06{{{d{Db}}}{{d{Ab}}}}{{{d{Ej}}}C`}{{{d{Db}}c}AjEb}{{{d{El}}}{{Cl{{d{Ed}}}}}}{{{d{Ej}}}{{Ef{f}}}}{{{d{Db}}}{{Ef{f}}}}{dc{}}{dC`}0{c{{Aj{e}}}{}{}}0{{}{{Aj{c}}}{}}0{dEh}0`","D":"Il","p":[[5,"PublicKey",0,230],[1,"reference",null,null,1],[1,"u8"],[1,"array"],[1,"slice"],[0,"mut"],[5,"Signature",0,231],[5,"SecretKey",0,230],[5,"NodeAddr",0,232],[5,"RelayUrl",0,233],[1,"unit"],[6,"Ordering",234],[6,"Result",235,null,1],[10,"Deserializer",236],[17,"Item"],[6,"SocketAddr",237],[10,"Iterator",238],[1,"bool"],[5,"Formatter",239],[5,"Error",239],[8,"Result",239],[6,"KeyParsingError",0,230],[5,"RelayUrlParseError",0,233],[5,"String",240],[5,"InternalSignature",241],[5,"VerifyingKey",242],[8,"SignatureError",243],[5,"DecodeError",244],[5,"SigningKey",245],[6,"Option",246,null,1],[1,"tuple",null,null,1],[8,"NodeId",0,230],[5,"NodeTicket",181,247],[5,"Url",248],[6,"ParseError",249],[10,"IntoIterator",250],[5,"Error",251],[1,"str"],[10,"CryptoRngCore",252],[10,"Hasher",253],[10,"Serializer",254],[10,"Error",255],[5,"Vec",256],[5,"TypeId",257],[10,"Ticket",181],[6,"Error",181],[6,"Error",258],[15,"Kind",229]],"r":[[4,230],[6,232],[7,230],[8,230],[9,233],[10,233],[11,230],[12,231],[185,247]],"b":[[60,"impl-Debug-for-Signature"],[61,"impl-Display-for-Signature"],[62,"impl-LowerHex-for-Signature"],[63,"impl-UpperHex-for-Signature"],[64,"impl-Display-for-PublicKey"],[65,"impl-Debug-for-PublicKey"],[66,"impl-Debug-for-KeyParsingError"],[67,"impl-Display-for-KeyParsingError"],[68,"impl-Display-for-SecretKey"],[69,"impl-Debug-for-SecretKey"],[71,"impl-Display-for-RelayUrl"],[72,"impl-Debug-for-RelayUrl"],[73,"impl-Debug-for-RelayUrlParseError"],[74,"impl-Display-for-RelayUrlParseError"],[77,"impl-From%3C%26%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[78,"impl-From%3C%5Bu8;+ed25519::::SignatureBytes::%7Bconstant%230%7D%5D%3E-for-Signature"],[79,"impl-From%3CInternalSignature%3E-for-Signature"],[83,"impl-From%3CError%3E-for-KeyParsingError"],[84,"impl-From%3CDecodeError%3E-for-KeyParsingError"],[85,"impl-From%3C%5Bu8;+32%5D%3E-for-SecretKey"],[87,"impl-From%3CSigningKey%3E-for-SecretKey"],[88,"impl-From%3C(PublicKey,+Option%3CRelayUrl%3E,+%26%5BSocketAddr%5D)%3E-for-NodeAddr"],[89,"impl-From%3CPublicKey%3E-for-NodeAddr"],[90,"impl-From%3CNodeTicket%3E-for-NodeAddr"],[138,"impl-SignatureEncoding-for-Signature"],[139,"impl-Signature"],[155,"impl-TryFrom%3C%26%5Bu8%5D%3E-for-PublicKey"],[156,"impl-TryFrom%3C%26%5Bu8;+32%5D%3E-for-PublicKey"],[199,"impl-Debug-for-NodeTicket"],[200,"impl-Display-for-NodeTicket"],[201,"impl-Display-for-Error"],[202,"impl-Debug-for-Error"],[206,"impl-From%3CDecodeError%3E-for-Error"],[207,"impl-From%3CError%3E-for-Error"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJgAFgAPACcAOQASAE4AAgBSAAAAVAACAFgAAgBdAAAAXwAAAGcAAwBsAAEAeAACAIIABACIAAEAiwAAAI4ACgCaABgAvgAGAMYABQDPAAEA0gABANkAAQDcAAkA","P":[[15,"T"],[16,""],[17,"T"],[30,""],[35,"T"],[40,""],[48,"Deref::Target"],[49,"D"],[52,"__D"],[54,""],[76,"T"],[77,""],[80,"T"],[81,""],[82,"T"],[83,""],[86,"T"],[87,""],[91,"T"],[92,""],[93,"T"],[94,""],[95,"T"],[96,""],[100,""],[101,""],[103,"FromStr::Err"],[106,"R"],[107,"H"],[108,"__H"],[109,"U"],[116,""],[129,"S"],[132,"__S"],[134,""],[141,"T"],[146,""],[153,"U,T"],[154,""],[155,"TryFrom::Error"],[157,"U,T"],[160,"TryFrom::Error"],[161,"U,T"],[164,"U"],[171,""],[179,""],[180,""],[189,"T"],[193,""],[194,"T"],[195,""],[197,"D"],[198,""],[203,"T"],[204,""],[205,"T"],[206,""],[210,"FromStr::Err"],[211,"U"],[213,""],[216,"S"],[217,""],[220,"T"],[221,""],[223,"U,T"],[225,"U"],[227,""]]}],["iroh_bench",{"t":"FGGGPPPFPPPPNNNNNNNNNNNNNNNNHONNNNNNNNNNNNHNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNONNNNNCOONCOHCCNOONNNNNNNNNNNNNNNNNNNNNONNNNNOSHHHHHHSHHHHHHFNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFONNNNNNOOOONNNNNNNNNNNOONNNNNNNNNNNNNNONOOOHOOONNNNNNOONNNNNN","n":["ClientStats","Commands","ConnectionSelector","EndpointSelector","Iroh","","","Opt","Quinn","","","S2n","__clone_box","","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","borrow","","","","","borrow_mut","","","","","client_handler","clients","clone","","clone_into","","clone_to_uninit","","close","","command","","command_for_update","","configure_tracing_subscriber","default","deref","","","","","deref_mut","","","","","download_size","drop","","","","","fmt","","from","","","","","from_arg_matches","","from_arg_matches_mut","","from_ref","","group_id","has_subcommand","init","","","","","initial_mtu","into","","","","","iroh","max_streams","metrics","print","quinn","read_unordered","rt","s2n","stats","","","streams","to_owned","","try_from","","","","","try_into","","","","","type_id","","","","","update_from_arg_matches","","update_from_arg_matches_mut","","upload_size","vzip","","","","","with_relay","ALPN","client","connect_client","handle_client_stream","server","server_endpoint","transport_config","ALPN","client","connect_client","handle_client_stream","server","server_endpoint","transport_config","Opt","__clone_box","augment_args","augment_args_for_update","borrow","borrow_mut","clone","clone_into","clone_to_uninit","command","command_for_update","deref","deref_mut","drop","fmt","from","from_arg_matches","from_arg_matches_mut","from_ref","group_id","init","into","to_owned","try_from","try_into","type_id","update_from_arg_matches","update_from_arg_matches_mut","vzip","Stats","StreamStats","TransferResult","avg_chunk_size","borrow","","","borrow_mut","","","chunk_size","chunk_time","chunks","","default","","deref","","","deref_mut","","","drop","","","duration","duration_hist","fmt","","","from","","","init","","","into","","","new","print","size","stream_finished","stream_stats","streams","throughput","throughput_bps","throughput_hist","total_duration","total_size","try_from","","","try_into","","","ttfb","ttfb_hist","type_id","","","vzip","",""],"q":[[0,"iroh_bench"],[126,"iroh_bench::iroh"],[133,"iroh_bench::quinn"],[140,"iroh_bench::s2n"],[169,"iroh_bench::stats"],[233,"dyn_clone::sealed"],[234,"clap_builder::builder::command"],[235,"anyhow"],[236,"core::fmt"],[237,"clap_builder::parser::matches::arg_matches"],[238,"clap_builder"],[239,"core::result"],[240,"clap_builder::util::id"],[241,"core::option"],[242,"tokio::runtime::runtime"],[243,"core::any"],[244,"iroh_base::node_addr"],[245,"iroh_base::relay_url"],[246,"iroh::endpoint"],[247,"iroh_quinn::connection"],[248,"iroh_quinn_proto::config"],[249,"core::net::socket_addr"],[250,"rustls_pki_types"],[251,"iroh_quinn::endpoint"],[252,"core::time"]],"i":"````lnAf`21000A`00113210Ab43210`1212121432121`0432104321014321021432102121211243210143210`110`1```3112143210432104321021211432101```````````````E`000000000000000000000000000```DbEbEd2102000210102102102201021021021022121112`01110210220102102","f":"````````````{{bd}f}0{hh}000{b{{b{c}}}{}}0000{{{b{j}}}{{b{jc}}}{}}0000{{lnA`}{{Ad{Ab}}}}`{{{b{Af}}}Af}{{{b{A`}}}A`}{{b{b{jc}}}f{}}0{{bAh}f}0{l{{Ad{f}}}}{{{b{n}}Aj{b{{Al{Ah}}}}}f}{{}h}000{{}f}{{}Ab}{An{{b{c}}}{}}0000{An{{b{jc}}}{}}0000`{Anf}0000{{{b{Af}}{b{jB`}}}Bb}{{{b{A`}}{b{jB`}}}Bb}{cc{}}0000{{{b{Bd}}}{{Bh{AfBf}}}}{{{b{Bd}}}{{Bh{A`Bf}}}}{{{b{jBd}}}{{Bh{AfBf}}}}{{{b{jBd}}}{{Bh{A`Bf}}}}{{{b{c}}}c{}}0{{}{{Bl{Bj}}}}{{{b{Bn}}}C`}{{}An}0000`{{}c{}}0000```{{{b{Ab}}An}f}``{{}Cb}``{{{b{n}}}f}``{bc{}}0{c{{Bh{e}}}{}{}}0000{{}{{Bh{c}}}{}}0000{bCd}0000{{{b{jAf}}{b{Bd}}}{{Bh{fBf}}}}{{{b{jA`}}{b{Bd}}}{{Bh{fBf}}}}{{{b{jAf}}{b{jBd}}}{{Bh{fBf}}}}{{{b{jA`}}{b{jBd}}}{{Bh{fBf}}}}`{{}c{}}0000``{{Cf{Bl{Ch}}A`}{{Ad{Ab}}}}{{Cf{Bl{Ch}}A`}{{Ad{{Cn{CjCl}}}}}}{{{b{Cl}}D`C`}{{Ad{{Cn{DbDb}}}}}}{{CjA`}{{Ad{f}}}}{{{b{Cb}}{b{{Bl{Ch}}}}{b{A`}}}{{Cn{CfCj}}}}{{AnDd}Df}`{{DhDjA`}{{Ad{Ab}}}}{{DhDjA`}{{Ad{{Cn{DlCl}}}}}}5{{DlA`}{{Ad{f}}}}{{{b{Cb}}DjDn{b{A`}}}{{Cn{DhDl}}}}4`{{bd}f}{hh}0{b{{b{c}}}{}}{{{b{j}}}{{b{jc}}}{}}{{{b{E`}}}E`}{{b{b{jc}}}f{}}{{bAh}f}{{}h}0{An{{b{c}}}{}}{An{{b{jc}}}{}}{Anf}{{{b{E`}}{b{jB`}}}Bb}{cc{}}{{{b{Bd}}}{{Bh{E`Bf}}}}{{{b{jBd}}}{{Bh{E`Bf}}}}{{{b{c}}}c{}}{{}{{Bl{Bj}}}}{{}An}{{}c{}}{bc{}}{c{{Bh{e}}}{}{}}{{}{{Bh{c}}}{}}{bCd}{{{b{jE`}}{b{Bd}}}{{Bh{fBf}}}}{{{b{jE`}}{b{jBd}}}{{Bh{fBf}}}}{{}c{}}````{b{{b{c}}}{}}00{{{b{j}}}{{b{jc}}}{}}00````{{}Eb}{{}Ed}{An{{b{c}}}{}}00{An{{b{jc}}}{}}00{Anf}00``{{{b{Eb}}{b{jB`}}}Bb}{{{b{Ed}}{b{jB`}}}Bb}{{{b{Db}}{b{jB`}}}Bb}{cc{}}00{{}An}00{{}c{}}00{{EfD`EfD`}Db}{{{b{Eb}}{b{Bn}}}f}`{{{b{jEb}}Db}f}```{{EfD`}Eh}```{c{{Bh{e}}}{}{}}00{{}{{Bh{c}}}{}}00``{bCd}00{{}c{}}00","D":"Dj","p":[[1,"reference",null,null,1],[5,"Private",233],[1,"unit"],[5,"Command",234],[0,"mut"],[6,"EndpointSelector",0],[6,"ConnectionSelector",0],[5,"Opt",0],[5,"ClientStats",0],[8,"Result",235],[6,"Commands",0],[1,"u8"],[1,"u32"],[1,"slice"],[1,"usize"],[5,"Formatter",236],[8,"Result",236],[5,"ArgMatches",237],[8,"Error",238],[6,"Result",239,null,1],[5,"Id",240],[6,"Option",241,null,1],[1,"str"],[1,"bool"],[5,"Runtime",242],[5,"TypeId",243],[5,"NodeAddr",244],[5,"RelayUrl",245],[5,"Endpoint",246],[5,"Connection",247],[1,"tuple",null,null,1],[1,"u64"],[5,"TransferResult",169],[1,"u16"],[5,"TransportConfig",248],[6,"SocketAddr",249],[5,"CertificateDer",250],[5,"Endpoint",251],[6,"PrivateKeyDer",250],[5,"Opt",140],[5,"Stats",169],[5,"StreamStats",169],[5,"Duration",252],[1,"f64"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMQAEgAAABwAHwAXADgABgBEAAwAVwAAAFoAAQBdAAMAYwAUAHkABAB/AAAAggAAAIUAAQCJAAAAjAAPAJ0ABACjACQAywACANEAGAA=","P":[[18,"T"],[28,""],[32,"T"],[34,""],[44,"T"],[55,""],[62,"T"],[67,""],[71,"T"],[73,""],[81,"U"],[89,""],[98,"T"],[100,"U,T"],[105,"U"],[110,""],[120,"V"],[127,""],[144,"T"],[146,""],[147,"T"],[148,""],[151,"T"],[153,""],[155,"T"],[156,""],[158,"T"],[159,""],[161,"U"],[162,"T"],[163,"U,T"],[164,"U"],[165,""],[168,"V"],[173,"T"],[183,""],[185,"T"],[191,""],[199,"T"],[202,""],[205,"U"],[208,""],[219,"U,T"],[222,"U"],[227,""],[230,"V"]]}],["iroh_dns_server",{"t":"FNNNNNNCCNNNNCNNNCNNNCCNNNNNNGFPPFFFNOONNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNOONNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNOFFFFNNNNONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNGPFFFPPGPPPNNNNOONNNNNNNNNNONNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNOOOOOONNNOOOOHNNNOOOOOONNNNNFNNNNNHNNNNNNFNNNNNNONNNONNNNN","n":["ZoneStore","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","config","dns","fmt","from","from_ref","get_signed_packet","http","in_memory","insert","into","metrics","new","persistent","resolve","server","state","to_owned","try_from","try_into","type_id","vzip","with_mainline_fallback","BootstrapOption","Config","Custom","Default","MainlineConfig","MetricsConfig","StoreConfig","__clone_box","bind_addr","bootstrap","borrow","","","","","borrow_mut","","","","","clone","clone_into","clone_to_uninit","data_dir","default","","","","deserialize","","","","","disabled","","dns","enabled","fmt","","","","","from","","","","","from_ref","http","https","into","","","","","load","mainline","metrics","pkarr_put_rate_limit","serialize","","","","","signed_packet_store_path","to_owned","try_from","","","","","try_into","","","","","type_id","","","","","vzip","","","","","zone_store","DnsConfig","DnsHandler","DnsServer","Handle","__clone_box","","","answer_request","bind_addr","borrow","","","","borrow_mut","","","","clone","","","clone_into","","","clone_to_uninit","","","default_soa","default_ttl","deserialize","fmt","","","from","","","","from_ref","","","handle_request","into","","","","local_addr","new","origins","port","rr_a","rr_aaaa","rr_ns","run_until_done","send_response","serialize","shutdown","spawn","to_owned","","","try_from","","","","try_into","","","","type_id","","","","vzip","","","","CertMode","Disabled","HttpConfig","HttpServer","HttpsConfig","LetsEncrypt","Manual","RateLimitConfig","SelfSigned","Simple","Smart","__clone_box","","","","bind_addr","","borrow","","","","","borrow_mut","","","","","cert_mode","clone","","","","clone_into","","","","clone_to_uninit","","","","default","","deserialize","","","","domains","eq","equivalent","","","fmt","","","","","from","","","","","from_ref","","","","http_addr","https_addr","into","","","","","letsencrypt_contact","letsencrypt_prod","port","","run_until_done","serialize","","","","shutdown","spawn","to_owned","","","","to_string","try_from","","","","","try_into","","","","","type_id","","","","","vzip","","","","","Metrics","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","dns_lookup_error","dns_lookup_notfound","dns_lookup_success","dns_requests","dns_requests_https","dns_requests_udp","fmt","from","from_ref","http_requests","http_requests_duration_ms","http_requests_error","http_requests_success","init_metrics","into","iter","name","pkarr_publish_noop","pkarr_publish_update","store_packets_expired","store_packets_inserted","store_packets_removed","store_packets_updated","to_owned","try_from","try_into","type_id","vzip","Server","borrow","borrow_mut","from","into","run_until_error","run_with_config_until_ctrl_c","shutdown","spawn","try_from","try_into","type_id","vzip","AppState","__clone_box","borrow","borrow_mut","clone","clone_into","clone_to_uninit","dns_handler","from","from_ref","into","store","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"iroh_dns_server"],[29,"iroh_dns_server::config"],[116,"iroh_dns_server::dns"],[191,"iroh_dns_server::http"],[299,"iroh_dns_server::metrics"],[335,"iroh_dns_server::server"],[348,"iroh_dns_server::state"],[365,"dyn_clone::sealed"],[366,"iroh_dns_server::store"],[367,"core::fmt"],[368,"pkarr::signed_packet"],[369,"core::option"],[370,"anyhow"],[371,"std::path"],[372,"core::convert"],[373,"hickory_proto::rr::domain::name"],[374,"hickory_proto::rr::record_type"],[375,"hickory_proto::rr::rr_set"],[376,"alloc::sync"],[377,"core::result"],[378,"core::any"],[379,"serde::de"],[380,"serde::ser"],[381,"hickory_server::server::request_handler"],[382,"bytes::bytes"],[383,"core::future::future"],[384,"alloc::boxed"],[385,"core::pin"],[386,"hickory_server::server::response_handler"],[387,"core::net::socket_addr"],[388,"hickory_server::authority::message_response"],[389,"hickory_proto::rr::resource"],[390,"core::iter::traits::iterator"],[391,"core::marker"],[392,"iroh_dns_server::http::rate_limiting"],[393,"iroh_dns_server::http::tls"],[394,"alloc::string"],[395,"alloc::vec::into_iter"]],"i":"`j00000``0000`000`000``000000``Bj0```BlCfCbC`3214032143330031403214220103214032143000321400000321403032140321403214032140````D`CjDb12Dl32103213213213213333210321321203210233333013003210321032103210321`Ej```El0`01110EnF`10Fd432104321143214321432144432113333433210432143210004321112104321004321304321043210432104321`Fj0000000000000000000`00000000000000`Gd0000`000000`Ff000000000000000","f":"`{{bd}f}{b{{b{c}}}{}}{{{b{h}}}{{b{hc}}}{}}{{{b{j}}}j}{{b{b{hc}}}f{}}{{bl}f}``{{{b{j}}{b{hn}}}A`}{cc{}}{{{b{c}}}c{}}{{{b{j}}{b{`}}}{{Af{{Ad{Ab}}}}}}```{{}c{}}```{{{b{j}}{b{`}}{b{An}}B`}{{Af{{Ad{{Bd{Bb}}}}}}}}``{bc{}}{c{{Bf{e}}}{}{}}{{}{{Bf{c}}}{}}{bBh}{{}c{}}{{jBj}j}```````{{bd}f}``{b{{b{c}}}{}}0000{{{b{h}}}{{b{hc}}}{}}0000{{{b{Bl}}}Bl}{{b{b{hc}}}f{}}{{bl}f}{{}{{Af{Bn}}}}{{}C`}{{}Bl}{{}Cb}{{}Bj}{c{{Bf{C`}}}Cd}{c{{Bf{Bl}}}Cd}{c{{Bf{Cf}}}Cd}{c{{Bf{Cb}}}Cd}{c{{Bf{Bj}}}Cd}{{}Cf}```{{{b{C`}}{b{hn}}}A`}{{{b{Bl}}{b{hn}}}A`}{{{b{Cf}}{b{hn}}}A`}{{{b{Cb}}{b{hn}}}A`}{{{b{Bj}}{b{hn}}}A`}{cc{}}0000{{{b{c}}}c{}}``{{}c{}}0000{c{{Af{C`}}}{{Al{Aj}}}}```{{{b{C`}}c}BfCh}{{{b{Bl}}c}BfCh}{{{b{Cf}}c}BfCh}{{{b{Cb}}c}BfCh}{{{b{Bj}}c}BfCh}{{}{{Af{Bn}}}}{bc{}}{c{{Bf{e}}}{}{}}0000{{}{{Bf{c}}}{}}0000{bBh}0000{{}c{}}0000`````{{bd}f}00{{{b{Cj}}Cl}{{Af{Cn}}}}`{b{{b{c}}}{}}000{{{b{h}}}{{b{hc}}}{}}000{{{b{D`}}}D`}{{{b{Cj}}}Cj}{{{b{Db}}}Db}{{b{b{hc}}}f{}}00{{bl}f}00``{c{{Bf{D`}}}Cd}{{{b{D`}}{b{hn}}}A`}{{{b{Cj}}{b{hn}}}A`}{{{b{Db}}{b{hn}}}A`}{cc{}}000{{{b{c}}}c{}}00{{{b{Cj}}{b{Cl}}c}{{Dh{{Df{Dd}}}}}Dj}{{}c{}}000{{{b{Dl}}}Dn}{{j{b{D`}}}{{Af{Cj}}}}`````{Dl{{Af{f}}}}{{{b{hDb}}{E`{cegi}}}{{Dh{{Df{Dd}}}}}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}{{Ef{}{{Eb{{b{Ed}}}}}}Eh}}{{{b{D`}}c}BfCh}2{{D`Cj}{{Af{Dl}}}}{bc{}}00{c{{Bf{e}}}{}{}}000{{}{{Bf{c}}}{}}000{bBh}000{{}c{}}000```````````{{bd}f}000``{b{{b{c}}}{}}0000{{{b{h}}}{{b{hc}}}{}}0000`{{{b{Ej}}}Ej}{{{b{El}}}El}{{{b{En}}}En}{{{b{F`}}}F`}{{b{b{hc}}}f{}}000{{bl}f}000{{}{{b{Ej}}}}{{}Ej}{c{{Bf{Ej}}}Cd}{c{{Bf{El}}}Cd}{c{{Bf{En}}}Cd}{c{{Bf{F`}}}Cd}`{{{b{El}}{b{El}}}Ah}{{b{b{c}}}Ah{}}00{{{b{Ej}}{b{hn}}}A`}{{{b{El}}{b{hn}}}A`}{{{b{El}}{b{hn}}}{{Bf{fFb}}}}{{{b{En}}{b{hn}}}A`}{{{b{F`}}{b{hn}}}A`}{cc{}}0000{{{b{c}}}c{}}000{{{b{Fd}}}{{Ad{Dn}}}}0{{}c{}}0000````{Fd{{Af{f}}}}{{{b{Ej}}c}BfCh}{{{b{El}}c}BfCh}{{{b{En}}c}BfCh}{{{b{F`}}c}BfCh}4{{{Ad{En}}{Ad{F`}}EjFf}{{Af{Fd}}}}{bc{}}000{bFh}{c{{Bf{e}}}{}{}}0000{{}{{Bf{c}}}{}}0000{bBh}0000{{}c{}}0000`{{bd}f}{b{{b{c}}}{}}{{{b{h}}}{{b{hc}}}{}}{{{b{Fj}}}Fj}{{b{b{hc}}}f{}}{{bl}f}{{}Fj}``````{{{b{Fj}}{b{hn}}}A`}{cc{}}{{{b{c}}}c{}}````{{}f}{{}c{}}{{{b{Fj}}}{{Gb{{G`{{b{Fl}}{b{Fn}}}}}}}}{{}{{b{Fl}}}}``````{bc{}}{c{{Bf{e}}}{}{}}{{}{{Bf{c}}}{}}{bBh}{{}c{}}`{b{{b{c}}}{}}{{{b{h}}}{{b{hc}}}{}}<9{Gd{{Af{f}}}}{C`{{Af{f}}}}1{{C`j}{{Af{Gd}}}}8765`{{bd}f}54{{{b{Ff}}}Ff}{{b{b{hc}}}f{}}{{bl}f}`{cc{}}{{{b{c}}}c{}}{{}c{}}`{bc{}}{c{{Bf{e}}}{}{}}{{}{{Bf{c}}}{}}{bBh}{{}c{}}","D":"Oj","p":[[1,"reference",null,null,1],[5,"Private",365],[1,"unit"],[0,"mut"],[5,"ZoneStore",0,366],[1,"u8"],[5,"Formatter",367],[8,"Result",367],[5,"SignedPacket",368],[6,"Option",369,null,1],[8,"Result",370],[1,"bool"],[5,"Path",371],[10,"AsRef",372],[5,"Name",373],[6,"RecordType",374],[5,"RecordSet",375],[5,"Arc",376,null,1],[6,"Result",377,null,1],[5,"TypeId",378],[6,"BootstrapOption",29],[5,"StoreConfig",29],[5,"PathBuf",371],[5,"Config",29],[5,"MainlineConfig",29],[10,"Deserializer",379],[5,"MetricsConfig",29],[10,"Serializer",380],[5,"DnsHandler",116],[5,"Request",381],[5,"Bytes",382],[5,"DnsConfig",116],[5,"Handle",116],[10,"Future",383,null,1],[5,"Box",384,null,1],[5,"Pin",385],[10,"ResponseHandler",386],[5,"DnsServer",116],[6,"SocketAddr",387],[5,"MessageResponse",388],[17,"Item"],[5,"Record",389],[10,"Iterator",390],[10,"Send",391],[6,"RateLimitConfig",191,392],[6,"CertMode",191,393],[5,"HttpConfig",191],[5,"HttpsConfig",191],[5,"Error",367],[5,"HttpServer",191],[5,"AppState",348],[5,"String",394],[5,"Metrics",299],[1,"str"],[10,"Any",378],[1,"tuple",null,null,1],[5,"IntoIter",395],[5,"Server",335]],"r":[[0,366],[191,393],[198,392]],"b":[[231,"impl-Default-for-%26RateLimitConfig"],[232,"impl-Default-for-RateLimitConfig"],[243,"impl-Debug-for-CertMode"],[244,"impl-Display-for-CertMode"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPAAIAACAAUACgAAAAwAAAAYAAQAJQAAACgADAA2AAgAQwAEAE0AAABZAAQAXwAUAHkAAgB+ABAAkQADAJkAAwCpAAEArQASAMsAAwDRAAkA3AARAO8ACAD9AAMADQEDABMBGAAtAQ0APAEEAEMBDABRAQEAWQEDAF4BBQBmAQAAaQEEAA==","P":[[2,"T"],[4,""],[5,"T"],[6,""],[10,"T"],[12,""],[16,"U"],[18,""],[19,""],[20,""],[23,"T"],[24,"U,T"],[25,"U"],[26,""],[27,"V"],[28,""],[39,"T"],[49,""],[50,"T"],[51,""],[57,"__D"],[62,""],[71,"T"],[79,"U"],[84,""],[88,"__S"],[93,""],[94,"T"],[95,"U,T"],[100,"U"],[105,""],[110,"V"],[120,""],[125,"T"],[133,""],[136,"T"],[139,""],[144,"__D"],[145,""],[148,"T"],[155,"R"],[156,"U"],[160,""],[168,",,,"],[169,"__S"],[170,""],[172,"T"],[175,"U,T"],[179,"U"],[183,""],[187,"V"],[202,""],[208,"T"],[219,""],[223,"T"],[227,""],[233,"__D"],[238,""],[239,"K"],[242,""],[247,"T"],[256,""],[258,"U"],[267,""],[268,"__S"],[272,""],[274,"T"],[278,""],[279,"U,T"],[284,"U"],[289,""],[294,"V"],[300,""],[301,"T"],[303,""],[304,"T"],[305,""],[314,"T"],[320,""],[321,"U"],[322,""],[330,"T"],[331,"U,T"],[332,"U"],[333,""],[334,"V"],[336,"T"],[339,"U"],[340,""],[344,"U,T"],[345,"U"],[346,""],[347,"V"],[349,""],[350,"T"],[352,""],[353,"T"],[354,""],[356,"T"],[358,"U"],[360,"T"],[361,"U,T"],[362,"U"],[363,""],[364,"V"]]}],["iroh_net_report",{"t":"FFFFFFFNHNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNOONNNNNNNNNNNNNNOOOOOONNOONNHOOONNOOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNN","n":["Addr","Client","Metrics","Options","QuicConfig","RelayLatencies","Report","addr","bind_local_stun_socket","borrow","","","","","","","borrow_mut","","","","","","","captive_portal","client_config","clone","","","","","clone_into","","","","","clone_to_uninit","","","","","default","","","","deref","","","","","","","deref_mut","","","","","","","disabled","drop","","","","","","","ep","eq","","equivalent","","","","","","fmt","","","","","","","","from","","","","","","","get_report","get_report_channel","get_report_with_opts","global_v4","global_v6","hair_pinning","https","icmp_v4","icmp_v6","icmpv4","icmpv6","init","","","","","","","into","","","","","","","ipv4","","ipv4_can_send","ipv6","","ipv6_can_send","iter","","mapping_varies_by_dest_ip","mapping_varies_by_dest_ipv6","name","new","os_has_ipv6","","portmap_probe","preferred_relay","quic_config","receive_stun_packet","relay_latency","relay_v4_latency","relay_v6_latency","reports","reports_full","stun_packets_dropped","stun_packets_recv_ipv4","stun_packets_recv_ipv6","stun_packets_sent_ipv4","stun_packets_sent_ipv6","stun_v4","stun_v6","to_owned","","","","","to_string","try_from","","","","","","","try_into","","","","","","","type_id","","","","","","","udp","vzip","","","","","",""],"q":[[0,"iroh_net_report"],[180,"netwatch::ip_family"],[181,"tokio_util::sync::cancellation_token"],[182,"netwatch::udp"],[183,"alloc::sync"],[184,"core::option"],[185,"iroh_net_report::metrics"],[186,"iroh_net_report::reportgen"],[187,"core::fmt"],[188,"iroh_relay::relay_map"],[189,"anyhow"],[190,"tokio::sync::oneshot"],[191,"core::any"],[192,"alloc::vec::into_iter"],[193,"iroh_base::relay_url"],[194,"core::time"],[195,"core::iter::traits::iterator"],[196,"portmapper"],[197,"hickory_resolver::resolver"],[198,"bytes::bytes"],[199,"core::net::socket_addr"],[200,"alloc::string"],[201,"core::result"],[202,"iroh_net_report::stun_utils"]],"i":"```````b`AdAfAhAj4B`f543261034543205432054320532154326105432610154326104323332225433261054326106663331113354326105432610433433523356`3331033355555551154320354326105432610543261035432610","f":"```````{{{d{b}}}f}{{hfj}{{A`{{n{l}}}}}}{d{{d{c}}}{}}000000{{{d{Ab}}}{{d{Abc}}}{}}000000``{{{d{Ad}}}Ad}{{{d{Af}}}Af}{{{d{Ah}}}Ah}{{{d{Aj}}}Aj}{{{d{f}}}f}{{d{d{Abc}}}Al{}}0000{{dAn}Al}0000{{}Ad}{{}Ah}{{}Aj}{{}B`}{Bb{{d{c}}}{}}000000{Bb{{d{Abc}}}{}}0000002{BbAl}000000`{{{d{Ah}}{d{Ah}}}Bd}{{{d{Aj}}{d{Aj}}}Bd}{{d{d{c}}}Bd{}}00000{{{d{Ad}}{d{AbBf}}}Bh}{{{d{Af}}{d{AbBf}}}Bh}{{{d{Ah}}{d{AbBf}}}Bh}0{{{d{Aj}}{d{AbBf}}}Bh}{{{d{b}}{d{AbBf}}}Bh}{{{d{B`}}{d{AbBf}}}Bh}{{{d{f}}{d{AbBf}}}Bh}{cc{}}000000{{{d{Abb}}Bj{A`{{n{l}}}}{A`{{n{l}}}}{A`{Af}}}{{Bl{{n{Ah}}}}}}{{{d{Abb}}BjB`}{{Bl{{Bn{{Bl{{n{Ah}}}}}}}}}}{{{d{Abb}}BjB`}{{Bl{{n{Ah}}}}}}```{{B`Bd}B`}00``{{}Bb}000000{{}c{}}000000``````{{{d{Ad}}}{{Cf{{Cd{{d{C`}}{d{Cb}}}}}}}}{{{d{Aj}}}{{`{{Cn{}{{Ch{{Cd{{d{Cj}}Cl}}}}}}}}}}``{{}{{d{C`}}}}{{{A`{D`}}Db}{{Bl{b}}}}{{}Bd}```{{B`{A`{Af}}}B`}{{{d{f}}DdDf}Al}``````````{{B`{A`{{n{l}}}}}B`}0{dc{}}0000{dDh}{c{{Dj{e}}}{}{}}000000{{}{{Dj{c}}}{}}000000{dDl}000000`{{}c{}}000000","D":"Gj","p":[[5,"Client",0],[1,"reference",null,null,1],[5,"Addr",0],[6,"IpFamily",180],[5,"CancellationToken",181],[5,"UdpSocket",182],[5,"Arc",183,null,1],[6,"Option",184,null,1],[0,"mut"],[5,"Metrics",0,185],[5,"QuicConfig",0,186],[5,"Report",0],[5,"RelayLatencies",0],[1,"unit"],[1,"u8"],[5,"Options",0],[1,"usize"],[1,"bool"],[5,"Formatter",187],[8,"Result",187],[5,"RelayMap",188],[8,"Result",189],[5,"Receiver",190],[1,"str"],[10,"Any",191],[1,"tuple",null,null,1],[5,"IntoIter",192],[17,"Item"],[5,"RelayUrl",193],[5,"Duration",194],[10,"Iterator",195],[5,"Client",196],[8,"TokioResolver",197],[5,"Bytes",198],[6,"SocketAddr",199],[5,"String",200],[6,"Result",201,null,1],[5,"TypeId",191]],"r":[[2,185],[4,186],[8,202]],"b":[[77,"impl-Display-for-Report"],[78,"impl-Debug-for-Report"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAHcACgAKAA0AGgAgADwABgBEAA8AZgAGAHoAAAB+AAAAiQAGAJIAGgCuAAYA","P":[[9,"T"],[25,""],[30,"T"],[35,""],[44,"T"],[58,""],[69,"K"],[75,""],[83,"T"],[90,""],[108,"U"],[121,""],[145,"T"],[150,""],[151,"U,T"],[158,"U"],[165,""],[173,"V"]]}],["iroh_relay",{"t":"EFFFNNNNNNCNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNOCCONNCOONNNNNNNNNNNNNNONNNNPPFFGPPPPPPPPPPPPPPPPPPGPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOSSSSSSGSSPPNNNNNNNNNNNNNNNNNNNNNNNCCCSHSPGPPPPPPPPGFPPPPPPPPPPPGFPFPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNCHHNHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSSFNNNNNNNNNNNNNNNGFSPFPGFPFFPFFFFFPFOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNOOOONONNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNNNNNNNONONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNOOOONNOOONNNNNONOOONONOOOOOONNNONNCONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNOOOHHHHHH","n":["MAX_PACKET_SIZE","RelayMap","RelayNode","RelayQuicConfig","borrow","","","borrow_mut","","","client","clone","","","clone_into","","","clone_to_uninit","","","cmp","","compare","","contains_node","default","default_from_node","defaults","deref","","","deref_mut","","","deserialize","","drop","","","empty","eq","","","equivalent","","","","","","","","","fmt","","","","","from","","","from_nodes","from_url","get_node","http","init","","","into","","","is_empty","len","nodes","partial_cmp","","port","protos","quic","","serialize","","server","stun_only","stun_port","to_owned","","","to_string","","try_from","","","try_into","","","type_id","","","url","urls","vzip","","","ActorGone","Build","Client","ClientBuilder","ClientError","Closed","ConnectTimeout","DialIO","Dns","Health","Http","Hyper","IPDisabled","InvalidUrl","KeepAlive","NoLocalAddr","NodeGone","Ping","PingAborted","PingTimeout","Pong","Proxy","Receive","ReceivedMessage","ReceivedPacket","Send","ServerRestarting","UnexpectedStatusCode","Upgrade","WebsocketError","address_family_selector","borrow","","","","borrow_mut","","","","build","clone","clone_into","clone_to_uninit","close","connect","deref","","","","deref_mut","","","","drop","","","","finish_ping","fmt","","","","","from","","","","","","","","init","","","","insecure_skip_cert_verify","into","","","","is_connected","is_prober","key_cache_capacity","local_addr","make_dangerous_client_config","new","note_preferred","protocol","proxy_url","recv","send","send_pong","server_public_key","server_url","source","start_ping","to_owned","to_string","try_from","","","","try_into","","","","type_id","","","","vzip","","","","data","problem","reconnect_in","remote_node_id","try_for","DEFAULT_HTTPS_PORT","DEFAULT_HTTP_PORT","DEFAULT_KEY_CACHE_CAPACITY","DEFAULT_METRICS_PORT","DEFAULT_RELAY_QUIC_PORT","DEFAULT_STUN_PORT","Protocol","RELAY_PATH","RELAY_PROBE_PATH","Relay","Websocket","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","","","fmt","from","init","into","parse_header","to_owned","try_from","try_into","type_id","upgrade_header","vzip","disco","relay","stun","MAGIC","looks_like_disco_wrapper","MAX_PACKET_SIZE","AlternateServer","Error","ErrorCode","ErrorResponse","Fingerprint","Indication","InvalidFingerprint","InvalidMessage","MalformedAttrs","MappedAddress","MessageClass","MessageDecoder","MessageIntegrity","MessageIntegritySha256","NoFingerprint","Nonce","NotBinding","NotSuccessResponse","PasswordAlgorithm","PasswordAlgorithms","Realm","Request","Software","StunAttribute","StunDecodeError","SuccessResponse","TransactionId","Unknown","UnknownAttributes","UserHash","UserName","XorMappedAddress","as_alternate_server","as_bytes","as_error_code","as_fingerprint","as_mapped_address","as_message_integrity","as_message_integrity_sha256","as_nonce","as_password_algorithm","as_password_algorithms","as_realm","as_ref","as_software","as_unknown","as_unknown_attributes","as_user_hash","as_user_name","as_xor_mapped_address","attribute_type","borrow","","","","","","borrow_mut","","","","","","clone","","","","clone_into","","","","clone_to_uninit","","","","cmp","compare","decode","default","","deref","","","","","","","deref_mut","","","","","","drop","","","","","","eq","","equivalent","","","","","","expect_alternate_server","expect_error_code","expect_fingerprint","expect_mapped_address","expect_message_integrity","expect_message_integrity_sha256","expect_nonce","expect_password_algorithm","expect_password_algorithms","expect_realm","expect_software","expect_unknown","expect_unknown_attributes","expect_user_hash","expect_user_name","expect_xor_mapped_address","fmt","","","","","","","","","from","","","","","","","","","","","","","","","","","","","","","","","","get_context","hash","init","","","","","","into","","","","","","is","is_alternate_server","is_error_code","is_fingerprint","is_mapped_address","is_message_integrity","is_message_integrity_sha256","is_nonce","is_password_algorithm","is_password_algorithms","is_realm","is_software","is_unknown","is_unknown_attributes","is_user_hash","is_user_name","is_xor_mapped_address","methods","parse_binding_request","parse_response","partial_cmp","request","response","to_owned","","","","to_string","","","try_from","","","","","","","try_into","","","","","","type_id","","","","","","vzip","","","","","","BINDING","RESERVED","SHARED_SECRET","ALPN_QUIC_ADDR_DISC","QUIC_ADDR_DISC_CLOSE_CODE","QUIC_ADDR_DISC_CLOSE_REASON","QuicClient","borrow","borrow_mut","deref","deref_mut","drop","fmt","from","get_addr_and_latency","init","into","new","try_from","try_into","type_id","vzip","CertConfig","ClientConnRateLimit","DEFAULT_CERT_RELOAD_INTERVAL","LetsEncrypt","Limits","Manual","MaybeTlsStreamServer","Metrics","Plain","QuicConfig","RelayConfig","Reloading","ReloadingResolver","Server","ServerConfig","StunConfig","StunMetrics","Tls","TlsConfig","accept_conn_burst","accept_conn_limit","accepts","bad_requests","bind_addr","","borrow","","","","","","","","","","","","","borrow_mut","","","","","","","","","","","","","bytes_per_second","bytes_recv","bytes_sent","cert","certificates","client_rx","clone","","","clone_into","","","clone_to_uninit","","","conns_rx_ratelimited_total","default","","","","deref","","","","","","","","","","","","","","deref_mut","","","","","","","","","","","","","disco_packets_dropped","disco_packets_recv","disco_packets_sent","disconnects","drop","","","","","","","","","","","","","failures","fmt","","","","","","","","","","","","","frames_rx_ratelimited_total","from","","","","","","","","","","","","","got_ping","http_addr","http_bind_addr","http_url","https_addr","https_bind_addr","https_url","init","","","","","","","","","","","","","","into","","","","","","","","","","","","","ipv4_success","ipv6_success","iter","","key_cache_capacity","limits","max_burst_bytes","metrics_addr","name","","other_packets_dropped","other_packets_recv","other_packets_sent","poll_flush","poll_read","poll_shutdown","poll_write","poll_write_vectored","quic","quic_addr","quic_bind_addr","relay","relay_accepts","reload","requests","resolve","send_packets_dropped","send_packets_recv","send_packets_sent","sent_pong","server_config","","shutdown","","spawn","stun","stun_addr","task_handle","testing","tls","to_owned","","","try_from","","","","","","","","","","","","","try_into","","","","","","","","","","","","","type_id","","","","","","","","","","","","","unique_client_keys","unknown_frames","vzip","","","","","","","","","","","","","websocket_accepts","certs","state","quic_config","relay_config","self_signed_tls_certs_and_config","server_config","stun_config","tls_config"],"q":[[0,"iroh_relay"],[103,"iroh_relay::client"],[217,"iroh_relay::client::ReceivedMessage"],[222,"iroh_relay::defaults"],[228,"iroh_relay::http"],[256,"iroh_relay::protos"],[259,"iroh_relay::protos::disco"],[261,"iroh_relay::protos::relay"],[262,"iroh_relay::protos::stun"],[487,"iroh_relay::protos::stun::methods"],[490,"iroh_relay::quic"],[509,"iroh_relay::server"],[784,"iroh_relay::server::CertConfig"],[786,"iroh_relay::server::testing"],[792,"iroh_relay::relay_map"],[793,"core::cmp"],[794,"iroh_base::relay_url"],[795,"core::result"],[796,"serde::de"],[797,"core::fmt"],[798,"anyhow"],[799,"alloc::sync"],[800,"core::convert"],[801,"core::iter::traits::collect"],[802,"core::option"],[803,"core::iter::traits::iterator"],[804,"serde::ser"],[805,"alloc::string"],[806,"core::any"],[807,"core::ops::function"],[808,"core::marker"],[809,"iroh_base::key"],[810,"hickory_resolver::resolver"],[811,"iroh_relay::client::conn"],[812,"hyper::error"],[813,"http::error"],[814,"tokio_tungstenite_wasm::error"],[815,"std::io::error"],[816,"core::net::socket_addr"],[817,"rustls::client::client_conn"],[818,"url"],[819,"bytes::bytes"],[820,"core::error"],[821,"core::time"],[822,"core::future::future"],[823,"http::header::value"],[824,"stun_rs::attributes"],[825,"stun_rs::attributes::stun::alternate_server"],[826,"stun_rs::error"],[827,"stun_rs::types"],[828,"stun_rs::attributes::stun::error_code"],[829,"stun_rs::attributes::stun::fingerprint"],[830,"stun_rs::attributes::stun::mapped_address"],[831,"stun_rs::attributes::stun::message_integrity"],[832,"stun_rs::attributes::stun::message_integrity_sha256"],[833,"stun_rs::attributes::stun::nonce"],[834,"stun_rs::attributes::stun::password_algorithm"],[835,"stun_rs::attributes::stun::password_algorithms"],[836,"stun_rs::attributes::stun::realm"],[837,"stun_rs::attributes::stun::software"],[838,"stun_rs::attributes::unknown"],[839,"stun_rs::attributes::stun::unknown_attributes"],[840,"stun_rs::attributes::stun::user_hash"],[841,"stun_rs::attributes::stun::user_name"],[842,"stun_rs::attributes::stun::xor_mapped_address"],[843,"stun_rs::context"],[844,"stun_rs::message"],[845,"core::hash"],[846,"alloc::vec"],[847,"iroh_quinn::endpoint"],[848,"rustls_pki_types"],[849,"iroh_relay::server::metrics"],[850,"core::default"],[851,"iroh_relay::server::resolver"],[852,"rustls::crypto::signer"],[853,"reloadable_core"],[854,"alloc::vec::into_iter"],[855,"core::pin"],[856,"core::task::wake"],[857,"core::task::poll"],[858,"tokio::io::read_buf"],[859,"std::io"],[860,"rustls::server::server_conn"],[861,"tokio_util::task::abort_on_drop"],[862,"stun_rs"],[863,"stun_rs::methods"]],"i":"````fhj210`2102102101010202`21021010210221022211100022110210222`210210222100``110`112102121021021012210Dh0```0000Df1111010011011`010111Cf12Dd12301122200230123012301023301233333012301123010110`10110001130232301230123012301NjNlNn20`````````Eh000000000000000000000000``````Fn`0Ih10Jb002``22020022212``1`222222Gd33333333303333333If3142In14253014251425142522112142253014253014253042444222555555555555555514225330014222555555555555555553012142530142530`5555555555555555```2``14252301442530142530142530142530```````Jj00000000000000```Ll`0``Lb``1`````0`Kn0KbKdLfLh32L`6KhLd43Lj8Kf;Jn985;43762:1<019920:9819819819984:9855;43762:1<0985;43762:1<09999985;43762:1<08985;43762:1<09985;43762:1<090300209855;43762:1<0985;43762:1<08898331498999;;;;;40249585999962500400`3981985;43762:1<0985;43762:1<0985;43762:1<099985;43762:1<09O`Ob``````","f":"````{b{{b{c}}}{}}00{{{b{d}}}{{b{dc}}}{}}00`{{{b{f}}}f}{{{b{h}}}h}{{{b{j}}}j}{{b{b{dc}}}l{}}00{{bn}l}00{{{b{h}}{b{h}}}A`}{{{b{j}}{b{j}}}A`}{{b{b{c}}}A`{}}0{{{b{f}}{b{Ab}}}Ad}{{}j}{{AbAf}f}`{Ah{{b{c}}}{}}00{Ah{{b{dc}}}{}}00{c{{Aj{h}}}Al}{c{{Aj{j}}}Al}{Ahl}00{{}f}{{{b{f}}{b{f}}}Ad}{{{b{h}}{b{h}}}Ad}{{{b{j}}{b{j}}}Ad}{{b{b{c}}}Ad{}}00000000{{{b{f}}{b{dAn}}}B`}0{{{b{h}}{b{dAn}}}B`}0{{{b{j}}{b{dAn}}}B`}{cc{}}00{e{{Bb{f}}}{{Bf{{Bd{h}}}}}{{Bj{}{{Bh{c}}}}}}{Abf}{{{b{f}}{b{Ab}}}{{Bl{{b{{Bd{h}}}}}}}}`{{}Ah}00{{}c{}}00{{{b{f}}}Ad}{{{b{f}}}Ah}{{{b{f}}}{{`{{Bn{}{{Bh{{b{{Bd{h}}}}}}}}}}}}{{{b{h}}{b{h}}}{{Bl{A`}}}}{{{b{j}}{b{j}}}{{Bl{A`}}}}````{{{b{h}}c}AjC`}{{{b{j}}c}AjC`}```{bc{}}00{bCb}0{c{{Aj{e}}}{}{}}00{{}{{Aj{c}}}{}}00{bCd}00`{{{b{f}}}{{`{{Bn{}{{Bh{{b{Ab}}}}}}}}}}{{}c{}}00``````````````````````````````{{Cfc}Cf{{Cj{}{{Ch{Ad}}}}ClCn}}{b{{b{c}}}{}}000{{{b{d}}}{{b{dc}}}{}}000{{CfD`Db}Dd}{{{b{Df}}}Df}{{b{b{dc}}}l{}}{{bn}l}{Ddl}{{{b{dDd}}}{{Aj{lDh}}}}{Ah{{b{c}}}{}}000{Ah{{b{dc}}}{}}000{Ahl}000{{{b{dDd}}{Dj{n}}}l}{{{b{Df}}{b{dAn}}}B`}{{{b{Dh}}{b{dAn}}}B`}0{{{b{Dd}}{b{dAn}}}B`}{{{b{Cf}}{b{dAn}}}B`}{cc{}}{DlDh}{DnDh}{E`Dh}3{EbDh}44{{}Ah}000{{CfAd}Cf}{{}c{}}000{{{b{Dd}}}Ad}2{{CfAh}Cf}{{{b{Dd}}}{{Bl{Ed}}}}{{}Ef}{cCf{{Bf{Ab}}}}{{{b{dDd}}Ad}l}{{CfEh}Cf}{{CfEj}Cf}{{{b{dDd}}}{{Bl{{Aj{DfDh}}}}}}{{{b{dDd}}ElEn}{{Aj{lDh}}}}{{{b{dDd}}{Dj{n}}}{{Aj{lDh}}}}{{CfF`}Cf}{{Cfc}Cf{{Bf{Ab}}}}{{{b{Dh}}}{{Bl{{b{Fb}}}}}}{{{b{dDd}}}{{Aj{{`{{Ff{}{{Ch{{Aj{FdDh}}}}}}ClCn}}Dh}}}}{bc{}}{bCb}{c{{Aj{e}}}{}{}}000{{}{{Aj{c}}}{}}000{bCd}000{{}c{}}000````````````````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{Eh}}}Eh}{{b{b{dc}}}l{}}{{bn}l}{Ah{{b{c}}}{}}{Ah{{b{dc}}}{}}{Ahl}{{{b{Eh}}{b{Eh}}}Ad}{{b{b{c}}}Ad{}}00{{{b{Eh}}{b{dAn}}}B`}{cc{}}{{}Ah}{{}c{}}{{{b{Fh}}}{{Bl{Eh}}}}{bc{}}{c{{Aj{e}}}{}{}}{{}{{Aj{c}}}{}}{bCd}{{{b{Eh}}}{{b{Fj}}}}{{}c{}}````{{{b{{Fl{n}}}}}Ad}`````````````````````````````````{{{b{Fn}}}{{Aj{{b{G`}}Gb}}}}{{{b{Gd}}}{{b{{Dj{n}}}}}}{{{b{Fn}}}{{Aj{{b{Gf}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gh}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gj}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gl}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Gn}}Gb}}}}{{{b{Fn}}}{{Aj{{b{H`}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hb}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hd}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hf}}Gb}}}}{{{b{Gd}}}{{b{{Fl{n}}}}}}{{{b{Fn}}}{{Aj{{b{Hh}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hj}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hl}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Hn}}Gb}}}}{{{b{Fn}}}{{Aj{{b{I`}}Gb}}}}{{{b{Fn}}}{{Aj{{b{Ib}}Gb}}}}{{{b{Fn}}}Id}{b{{b{c}}}{}}00000{{{b{d}}}{{b{dc}}}{}}00000{{{b{If}}}If}{{{b{Ih}}}Ih}{{{b{Gd}}}Gd}{{{b{Fn}}}Fn}{{b{b{dc}}}l{}}000{{bn}l}000{{{b{Gd}}{b{Gd}}}A`}{{b{b{c}}}A`{}}{{{b{If}}{b{{Fl{n}}}}}{{Aj{{Il{IjAh}}In}}}}{{}If}{{}Gd}{Ah{{b{c}}}{}}0{{{b{Gd}}}{{b{{Fl{n}}}}}}1111{Ah{{b{dc}}}{}}00000{Ahl}00000{{{b{Ih}}{b{Ih}}}Ad}{{{b{Gd}}{b{Gd}}}Ad}{{b{b{c}}}Ad{}}00000{{{b{Fn}}}{{b{G`}}}}{{{b{Fn}}}{{b{Gf}}}}{{{b{Fn}}}{{b{Gh}}}}{{{b{Fn}}}{{b{Gj}}}}{{{b{Fn}}}{{b{Gl}}}}{{{b{Fn}}}{{b{Gn}}}}{{{b{Fn}}}{{b{H`}}}}{{{b{Fn}}}{{b{Hb}}}}{{{b{Fn}}}{{b{Hd}}}}{{{b{Fn}}}{{b{Hf}}}}{{{b{Fn}}}{{b{Hh}}}}{{{b{Fn}}}{{b{Hj}}}}{{{b{Fn}}}{{b{Hl}}}}{{{b{Fn}}}{{b{Hn}}}}{{{b{Fn}}}{{b{I`}}}}{{{b{Fn}}}{{b{Ib}}}}{{{b{If}}{b{dAn}}}{{Aj{lJ`}}}}{{{b{Ih}}{b{dAn}}}{{Aj{lJ`}}}}{{{b{Gd}}{b{dAn}}}{{Aj{lJ`}}}}0{{{b{Fn}}{b{dAn}}}{{Aj{lJ`}}}}{{{b{Jb}}{b{dAn}}}B`}0{{{b{In}}{b{dAn}}}{{Aj{lJ`}}}}0{cc{}}0{{{b{{Dj{n}}}}}Gd}{{{Dj{n}}}Gd}2{HfFn}3{H`Fn}{HbFn}{GnFn}{HjFn}{GlFn}{HdFn}{I`Fn}{HnFn}{GhFn}{HhFn}{G`Fn}{GjFn}{HlFn}{IbFn}{GfFn}{cc{}}0{{{b{If}}}{{Bl{{b{Jd}}}}}}{{{b{Gd}}{b{dc}}}lJf}{{}Ah}00000{{}c{}}00000{{{b{{Fl{n}}}}}Ad}{{{b{Fn}}}Ad}000000000000000`{{{b{{Fl{n}}}}}{{Aj{GdJb}}}}{{{b{{Fl{n}}}}}{{Aj{{Il{GdEd}}Jb}}}}{{{b{Gd}}{b{Gd}}}{{Bl{A`}}}}{Gd{{Jh{n}}}}{{GdEd}{{Jh{n}}}}{bc{}}000{bCb}00{c{{Aj{e}}}{}{}}{n{{Aj{Ih}}}}11111{{}{{Aj{c}}}{}}00000{bCd}00000{{}c{}}00000```````{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{Ah{{b{c}}}{}}{Ah{{b{dc}}}{}}{Ahl}{{{b{Jj}}{b{dAn}}}B`}{cc{}}{{{b{Jj}}Ed{b{Fj}}}{{Bb{{Il{EdFd}}}}}}{{}Ah}{{}c{}}{{JlEf}{{Bb{Jj}}}}?=<;`````````````````````````:::::::::::::9999999999999````{{{b{Jn}}}{{Bl{{Jh{K`}}}}}}`{{{b{Kb}}}Kb}{{{b{Kd}}}Kd}{{{b{Kf}}}Kf}{{b{b{dc}}}l{}}00{{bn}l}00`{{}Kb}{{}Kd}{{}{{Kh{ce}}}{KjKl}{KjKl}}{{}Kn}{Ah{{b{c}}}{}}00{{{b{{L`{c}}}}}{{b{e}}}Cl{}}1111111111{Ah{{b{dc}}}{}}000000000000````{Ahl}000000000000`{{{b{Kb}}{b{dAn}}}B`}{{{b{Kd}}{b{dAn}}}B`}{{{b{{L`{c}}}}{b{dAn}}}B`{KlCl}}{{{b{Lb}}{b{dAn}}}B`}{{{b{{Kh{ce}}}}{b{dAn}}}B`KlKl}{{{b{{Ld{ce}}}}{b{dAn}}}B`KlKl}{{{b{Lf}}{b{dAn}}}B`}{{{b{Lh}}{b{dAn}}}B`}{{{b{{Lj{ce}}}}{b{dAn}}}B`KlKl}{{{b{Kn}}{b{dAn}}}B`}{{{b{Kf}}{b{dAn}}}B`}{{{b{{Ll{ce}}}}{b{dAn}}}B`KlKl}{{{b{Jn}}{b{dAn}}}B`}`{cc{}}000000000000`{{{b{Jn}}}{{Bl{Ed}}}}`{{{b{Jn}}}{{Bl{Ab}}}}1`0{{}Ah}00{{cFd}{{Bb{{L`{c}}}}}{Cl{Mb{}{{Ln{M`}}}}}}1111111111{{}c{}}000000000000``{{{b{Kb}}}{{Mf{{Il{{b{Fj}}{b{Md}}}}}}}}{{{b{Kd}}}{{Mf{{Il{{b{Fj}}{b{Md}}}}}}}}````{{}{{b{Fj}}}}0```{{{Mh{{b{dLb}}}}{b{dMj}}}{{Ml{{Aj{lEb}}}}}}{{{Mh{{b{dLb}}}}{b{dMj}}{b{dMn}}}{{Ml{{N`{l}}}}}}1{{{Mh{{b{dLb}}}}{b{dMj}}{b{{Fl{n}}}}}{{Ml{{Aj{AhEb}}}}}}{{{Mh{{b{dLb}}}}{b{dMj}}{b{{Fl{Nb}}}}}{{Ml{{Aj{AhEb}}}}}}`;```{{{b{{L`{c}}}}}l{Cl{Mb{}{{Ln{M`}}}}}}`{{{b{{L`{c}}}}Nd}{{Bl{{Bd{M`}}}}}{{Mb{}{{Ln{M`}}}}ClKl}}``````{{{L`{c}}}l{Cl{Mb{}{{Ln{M`}}}}}}{Jn{{Bb{l}}}}{{{Kh{ce}}}{{Bb{Jn}}}KlKl}`{{{b{Jn}}}{{Bl{Ed}}}}{{{b{dJn}}}{{b{d{Nf{{Bb{l}}}}}}}}``{bc{}}00{c{{Aj{e}}}{}{}}000000000000{{}{{Aj{c}}}{}}000000000000{bCd}000000000000``{{}c{}}000000000000```{{}Lh}{{}{{Ld{l}}}}{{}{{Il{{Jh{K`}}Nh}}}}{{}{{Kh{l}}}}{{}Lf}{{}{{Lj{l}}}}","D":"BJn","p":[[1,"reference",null,null,1],[0,"mut"],[5,"RelayMap",0,792],[5,"RelayNode",0,792],[5,"RelayQuicConfig",0,792],[1,"unit"],[1,"u8"],[6,"Ordering",793],[5,"RelayUrl",794],[1,"bool"],[1,"u16"],[1,"usize"],[6,"Result",795,null,1],[10,"Deserializer",796],[5,"Formatter",797],[8,"Result",797],[8,"Result",798],[5,"Arc",799,null,1],[10,"Into",800],[17,"Item"],[10,"IntoIterator",801],[6,"Option",802,null,1],[10,"Iterator",803],[10,"Serializer",804],[5,"String",805],[5,"TypeId",806],[5,"ClientBuilder",103],[17,"Output"],[10,"Fn",807],[10,"Send",808],[10,"Sync",808],[5,"SecretKey",809],[8,"TokioResolver",810],[5,"Client",103],[6,"ReceivedMessage",103,811],[6,"ClientError",103],[1,"array"],[5,"Error",812],[5,"Error",813],[6,"Error",814],[5,"Error",815],[6,"SocketAddr",816],[5,"ClientConfig",817],[6,"Protocol",228],[5,"Url",818],[8,"NodeId",809],[5,"Bytes",819],[5,"PublicKey",809],[10,"Error",820],[5,"Duration",821],[10,"Future",822,null,1],[5,"HeaderValue",823],[1,"str"],[1,"slice"],[6,"StunAttribute",262,824],[5,"AlternateServer",825],[5,"StunError",826],[5,"TransactionId",262,827],[5,"ErrorCode",828],[6,"Fingerprint",829],[5,"MappedAddress",830],[6,"MessageIntegrity",831],[6,"MessageIntegritySha256",832],[5,"Nonce",833],[5,"PasswordAlgorithm",834],[5,"PasswordAlgorithms",835],[5,"Realm",836],[5,"Software",837],[5,"Unknown",838],[5,"UnknownAttributes",839],[5,"UserHash",840],[5,"UserName",841],[5,"XorMappedAddress",842],[5,"AttributeType",824],[5,"MessageDecoder",262,843],[6,"MessageClass",262,844],[5,"StunMessage",844],[1,"tuple",null,null,1],[5,"StunDecodeError",262,826],[5,"Error",797],[6,"Error",262],[5,"DecoderContext",843],[10,"Hasher",845],[5,"Vec",846],[5,"QuicClient",490],[5,"Endpoint",847],[5,"Server",509],[5,"CertificateDer",848],[5,"Metrics",509,849],[5,"StunMetrics",509,849],[5,"ClientConnRateLimit",509],[5,"ServerConfig",509],[10,"Default",850],[10,"Debug",797],[5,"Limits",509],[5,"ReloadingResolver",509,851],[6,"MaybeTlsStreamServer",509],[5,"RelayConfig",509],[5,"StunConfig",509],[5,"QuicConfig",509],[5,"TlsConfig",509],[6,"CertConfig",509],[17,"Value"],[5,"CertifiedKey",852],[10,"Loader",853],[10,"Any",806],[5,"IntoIter",854],[5,"Pin",855],[5,"Context",856],[6,"Poll",857],[5,"ReadBuf",858],[8,"Result",815],[5,"IoSlice",859],[5,"ClientHello",860],[5,"AbortOnDropHandle",861],[5,"ServerConfig",860],[15,"ReceivedPacket",217],[15,"Health",217],[15,"ServerRestarting",217],[15,"Manual",784],[15,"LetsEncrypt",784]],"r":[[0,261],[1,792],[2,792],[3,792],[126,811],[272,844],[273,843],[285,824],[286,826],[288,827],[449,862],[487,863],[488,863],[489,863],[511,851],[516,849],[521,851],[525,849]],"b":[[52,"impl-Display-for-RelayMap"],[53,"impl-Debug-for-RelayMap"],[54,"impl-Display-for-RelayNode"],[55,"impl-Debug-for-RelayNode"],[162,"impl-Debug-for-ClientError"],[163,"impl-Display-for-ClientError"],[167,"impl-From%3CError%3E-for-ClientError"],[168,"impl-From%3CError%3E-for-ClientError"],[169,"impl-From%3CError%3E-for-ClientError"],[171,"impl-From%3CError%3E-for-ClientError"],[387,"impl-Display-for-TransactionId"],[388,"impl-Debug-for-TransactionId"],[390,"impl-Display-for-Error"],[391,"impl-Debug-for-Error"],[392,"impl-Debug-for-StunDecodeError"],[393,"impl-Display-for-StunDecodeError"],[396,"impl-From%3C%26%5Bu8;+stun_rs::::types::%7Bimpl%2313%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[397,"impl-From%3C%5Bu8;+stun_rs::::types::%7Bimpl%2314%7D::%7Bconstant%230%7D%5D%3E-for-TransactionId"],[399,"impl-From%3CRealm%3E-for-StunAttribute"],[401,"impl-From%3CNonce%3E-for-StunAttribute"],[402,"impl-From%3CPasswordAlgorithm%3E-for-StunAttribute"],[403,"impl-From%3CMessageIntegritySha256%3E-for-StunAttribute"],[404,"impl-From%3CUnknown%3E-for-StunAttribute"],[405,"impl-From%3CMessageIntegrity%3E-for-StunAttribute"],[406,"impl-From%3CPasswordAlgorithms%3E-for-StunAttribute"],[407,"impl-From%3CUserName%3E-for-StunAttribute"],[408,"impl-From%3CUserHash%3E-for-StunAttribute"],[409,"impl-From%3CFingerprint%3E-for-StunAttribute"],[410,"impl-From%3CSoftware%3E-for-StunAttribute"],[411,"impl-From%3CAlternateServer%3E-for-StunAttribute"],[412,"impl-From%3CMappedAddress%3E-for-StunAttribute"],[413,"impl-From%3CUnknownAttributes%3E-for-StunAttribute"],[414,"impl-From%3CXorMappedAddress%3E-for-StunAttribute"],[415,"impl-From%3CErrorCode%3E-for-StunAttribute"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMEBMwABAAAABQAFAAwADAAaAAAAHQAKACkAEABBAAIASgABAFAAAQBVAA0AZQACAIcABwCQAAIAlQALAKIABACoAAIArAAAAK8AAwDGAAAAyAARAOoADAD4AAAA+wADAAABAAAyAQAAOgEZAFUBAABXARoAggEIAI0BAQCQAQAAkgEOAKQBBgDFAQAAyAEfAO8BBQD3AQAA+gEDABcCGQA3AggAQQIeAGQCDAByAgwAlAICAJgCCQCxAgEAtwIBALwCBADIAgAA1wIpAAMDDAA=","P":[[4,"T"],[11,""],[14,"T"],[17,""],[22,"K"],[24,""],[28,"T"],[34,"__D"],[36,""],[43,"K"],[52,""],[57,"T"],[60,"I,"],[61,""],[67,"U"],[70,""],[79,"__S"],[84,"T"],[87,""],[89,"U,T"],[92,"U"],[95,""],[100,"V"],[133,"S"],[134,"T"],[142,""],[144,"T"],[145,""],[148,"T"],[156,""],[166,"T"],[167,""],[170,"T"],[171,""],[172,"T"],[174,""],[179,"U"],[183,""],[188,""],[189,""],[196,""],[197,""],[199,"T"],[200,""],[201,"U,T"],[205,"U"],[209,""],[213,"V"],[233,"T"],[235,""],[236,"T"],[237,""],[238,"T"],[240,""],[242,"K"],[245,""],[246,"T"],[247,""],[248,"U"],[249,""],[250,"T"],[251,"U,T"],[252,"U"],[253,""],[255,"V"],[260,""],[313,"T"],[325,""],[329,"T"],[333,""],[338,"K"],[339,""],[342,"T"],[344,""],[345,"T"],[355,""],[363,"K"],[369,""],[394,"T"],[396,""],[398,"T"],[399,""],[400,"T"],[401,""],[416,"T"],[418,""],[419,"__H"],[420,""],[426,"U"],[432,""],[455,"T"],[459,""],[462,"U,T"],[463,""],[464,"U,T"],[469,"U"],[475,""],[481,"V"],[494,"T"],[498,""],[500,"T"],[501,""],[503,"U"],[504,""],[505,"U,T"],[506,"U"],[507,""],[508,"V"],[534,"T"],[564,""],[569,"T"],[572,""],[578,"EC,EA"],[579,""],[580,"T"],[583,"Loader,Deref::Target"],[584,"T"],[611,""],[627,"Loader"],[628,""],[629,"EC,EA"],[631,""],[633,"EC,EA"],[634,""],[636,"EC,EA"],[637,""],[639,"T"],[653,""],[662,"Loader"],[663,""],[673,"U"],[688,""],[709,"Loader"],[719,""],[720,"EC,EA"],[722,""],[726,"T"],[729,"U,T"],[742,"U"],[755,""],[770,"V"],[786,""]]}],["iroh_test",{"t":"FQNNNNCNCNNNNHHHHH","n":["CallOnDrop","assert_eq_hex","borrow","borrow_mut","drop","from","hexdump","into","logging","new","try_from","try_into","type_id","parse_hexdump","print_hexdump","setup","setup_multithreaded","testing_subscriber"],"q":[[0,"iroh_test"],[13,"iroh_test::hexdump"],[15,"iroh_test::logging"],[18,"core::ops::function"],[19,"core::result"],[20,"core::any"],[21,"alloc::vec"],[22,"anyhow"],[23,"alloc::string"],[24,"core::convert"],[25,"tracing_core::dispatcher"],[26,"tracing_core::subscriber"]],"i":"``f000`0`0000`````","f":"``{b{{b{c}}}{}}{{{b{d}}}{{b{dc}}}{}}{{{b{df}}}h}{cc{}}`{{}c{}}`{cfj}{c{{l{e}}}{}{}}{{}{{l{c}}}{}}{bn}{{{b{A`}}}{{Af{{Ad{Ab}}}}}}{{ce}Ah{{Al{{Aj{Ab}}}}}{{Al{{Aj{An}}}}}}{{}B`}{{}h}{{}{{`{Bb}}}}","D":"Ad","p":[[1,"reference",null,null,1],[0,"mut"],[5,"CallOnDrop",0],[1,"unit"],[10,"FnOnce",18],[6,"Result",19,null,1],[5,"TypeId",20],[1,"str"],[1,"u8"],[5,"Vec",21],[8,"Result",22],[5,"String",23],[1,"slice"],[10,"AsRef",24],[1,"usize"],[5,"DefaultGuard",25],[10,"Subscriber",26]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAgABAABAAAAAwACAAcAAAAKAAMA","P":[[2,"T"],[4,""],[5,"T"],[7,"U"],[9,""],[10,"U,T"],[11,"U"],[12,""],[14,","],[15,""]]}]]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); -//{"start":39,"fragment_lengths":[500,60604,8260,6205,9917,4330,22447,1211]} \ No newline at end of file +//{"start":39,"fragment_lengths":[500,60604,8260,6205,9917,4330,22405,1211]} \ No newline at end of file diff --git a/pr/3069/docs/search.desc/iroh_relay/iroh_relay-desc-0-.js b/pr/3069/docs/search.desc/iroh_relay/iroh_relay-desc-0-.js index dbb0c58333..6c9aa4ae36 100644 --- a/pr/3069/docs/search.desc/iroh_relay/iroh_relay-desc-0-.js +++ b/pr/3069/docs/search.desc/iroh_relay/iroh_relay-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("iroh_relay", 0, "Iroh’s relay is a feature within iroh, a peer-to-peer …\nConfiguration of all the relay servers that can be used.\nInformation on a specific relay server.\nConfiguration for speaking to the QUIC endpoint on the …\nExposes Client, which allows to establish connections to a …\nIs this a known node?\nCreates a new RelayMap with a single relay server …\nDefault values used in the relay.\nCreate an empty relay map.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs the RelayMap from an iterator of RelayNodes.\nReturns a RelayMap from a RelayUrl.\nGet the given node.\nHTTP-specific constants for the relay server and client.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAre there any nodes in this map?\nHow many nodes are known?\nReturns an Iterator over all known nodes.\nThe port on which the connection should be bound to.\nProtocols used by the iroh-relay\nCreate a QUIC server that accepts connections for QUIC …\nConfiguration to speak to the QUIC endpoint on the relay …\nA fully-fledged iroh-relay server over HTTP or HTTPS.\nWhether this relay server should only be used for STUN …\nThe stun port of the relay server.\nThe RelayUrl where this relay server can be dialed.\nReturns the sorted relay URLs.\nThe inner actor is gone, likely means things are shutdown.\nThe relay super::client::Client failed to build\nAn HTTP Relay client.\nBuild a Client.\nPossible connection errors on the Client\nThe client is closed\nThere was a connection timeout error\nThere was an error dialing\nThere was an error with DNS resolution\nA one-way message from server to client, declaring the …\nThere was an http error http::Error.\nThere was http server hyper::Error\nBoth IPv4 and IPv6 are disabled for this relay node\nThe given Url is invalid\nA one-way empty message from server to client, just to …\nNo local addresses exist\nIndicates that the client identified by the underlying …\nRequest from a client or server to reply to the other side …\nThe ping request was aborted\nThe ping request timed out\nReply to a ReceivedMessage::Ping from a client or server …\nThe connection failed to proxy\nThere was an error receiving a packet\nThe messages received from a framed relay stream.\nRepresents an incoming packet.\nThere was an error sending a packet\nA one-way message from server to client, advertising that …\nThere was an unexpected status code\nThe connection failed to upgrade\nAn error related to websockets, either errors with parsing …\nReturns if we should prefer ipv6 it replaces the …\nBuild the Client\nClose the http relay connection.\nDisconnect the http relay connection.\nConnects to a relay Server and returns the underlying …\nFinish a ping message\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSkip the verification of the relay server’s SSL …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the underlying relay connection is …\nIndicates this client is a prober\nSet the capacity of the cache for public keys.\nGet the local addr of the connection. If there is no …\nCreates a client config that trusts any servers without …\nCreate a new ClientBuilder\nLet the server know that this client is the preferred …\nSets whether to connect to the relay via websockets or not.\nSet an explicit proxy url to proxy all HTTP(S) traffic …\nThe public key for this client\nReads a message from the server.\nSend a packet to the server.\nSend a pong back to the server.\nThe expected PublicKey of the relay server we are …\nSets the server url\nSend a ping to the server. Return once we get an expected …\nThe received packet bytes.\nIf set, is a description of why the connection is …\nAn advisory duration that the client should wait before …\nThe NodeId of the packet sender.\nAn advisory duration for how long the client should …\nThe default HTTPS port used by the Relay server.\nThe default HTTP port used by the Relay server.\nThe default capacity of the key cache for the relay server.\nThe default metrics port used by the Relay server.\nThe default QUIC port used by the Relay server to accept …\nThe default STUN port used by the Relay server.\nThe HTTP upgrade protocol used for relaying.\nThe HTTP path under which the relay accepts relaying …\nThe HTTP path under which the relay allows doing latency …\nRelays over the custom relaying protocol with a custom …\nRelays over websockets.\nReturns the argument unchanged.\nCalls U::from(self).\nTries to match the value of an HTTP upgrade header to …\nThe HTTP upgrade header used or expected.\nThis module exports looks_like_disco_wrapper as the only …\nThis module implements the relaying protocol used by the …\nSTUN packets sending and receiving.\nThe 6 byte header of all discovery messages.\nReports whether p looks like it’s a packet containing an …\nThe maximum size of a packet sent over relay. (This only …\nThe AlternateServeratribute\nErrors that can occur when handling a STUN packet.\nThe ErrorCodeatribute\nerror response\nThe Fingerprintatribute\nindication\nSTUN request had bogus fingerprint.\nThe STUN message could not be parsed or is otherwise …\nSTUN response has malformed attributes.\nThe MappedAddressatribute\nThe STUN message class. Although there are four message …\nClass used to decode STUN messages\nThe MessageIntegrityatribute\nThe MessageIntegritySha256atribute\nSTUN request didn’t end in fingerprint.\nThe Nonceatribute\nSTUN request is not a binding request when it should be.\nSTUN packet is not a response when it should be.\nThe PasswordAlgorithmatribute\nThe PasswordAlgorithmsatribute\nThe Realmatribute\nrequest\nThe Softwareatribute\nSTUN Attributes that can be attached to a StunMessage\nDescribes an error decoding a StunMessage\nsuccess response\nThe transaction ID is a 96-bit identifier, used to …\nThe Unknownatribute\nThe UnknownAttributesatribute\nThe UserHashatribute\nThe UserNameatribute\nThe XorMappedAddressatribute\nReturns a reference to the internal attribute value or an …\nReturns a reference to the bytes that represents the …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns the STUN attribute type of this instance.\nDecodes the STUN raw buffer\nCreates a cryptographically random transaction ID chosen …\nReturns a reference to the AlternateServer attribute.\nReturns a reference to the ErrorCode attribute.\nReturns a reference to the Fingerprint attribute.\nReturns a reference to the MappedAddress attribute.\nReturns a reference to the MessageIntegrity attribute.\nReturns a reference to the MessageIntegritySha256 …\nReturns a reference to the Nonce attribute.\nReturns a reference to the PasswordAlgorithm attribute.\nReturns a reference to the PasswordAlgorithms attribute.\nReturns a reference to the Realm attribute.\nReturns a reference to the Software attribute.\nReturns a reference to the Unknown attribute.\nReturns a reference to the UnknownAttributes attribute.\nReturns a reference to the UserHash attribute.\nReturns a reference to the UserName attribute.\nReturns a reference to the XorMappedAddress attribute.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the context associated to this decoder\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReports whether b is a STUN message.\nReturns true if this StunAttribute is AlternateServer\nReturns true if this StunAttribute is ErrorCode\nReturns true if this StunAttribute is Fingerprint\nReturns true if this StunAttribute is MappedAddress\nReturns true if this StunAttribute is MessageIntegrity\nReturns true if this StunAttribute is …\nReturns true if this StunAttribute is Nonce\nReturns true if this StunAttribute is PasswordAlgorithm\nReturns true if this StunAttribute is PasswordAlgorithms\nReturns true if this StunAttribute is Realm\nReturns true if this StunAttribute is Software\nReturns true if this StunAttribute is Unknown\nReturns true if this StunAttribute is UnknownAttributes\nReturns true if this StunAttribute is UserHash\nReturns true if this StunAttribute is UserName\nReturns true if this StunAttribute is XorMappedAddress\nSTUN Methods Registry\nParses a STUN binding request.\nParses a successful binding response STUN packet. The IP …\nGenerates a binding request STUN packet.\nGenerates a binding response.\nBinding\nReserved\nShared secret\nALPN for our quic addr discovery\nEndpoint close error code\nEndpoint close reason\nHandles the client side of QUIC address discovery.\nReturns the argument unchanged.\nClient side of QUIC address discovery.\nCalls U::from(self).\nCreate a new QuicClient to handle the client side of QUIC …\nTLS certificate configuration.\nPer-client rate limit configuration.\nThe default certificate reload interval.\nUse Let’s Encrypt.\nRate limits.\nUse a static TLS key and certificate chain.\nThe main underlying IO stream type used for the relay …\nMetrics tracked for the relay server\nA plain non-Tls tokio::net::TcpStream\nConfiguration for the QUIC server.\nConfiguration for the Relay HTTP and HTTPS server.\nUse a TLS key and certificate chain that can be reloaded.\nA Certificate resolver that reloads the certificate every …\nA running Relay + STUN server.\nConfiguration for the full Relay & STUN server.\nConfiguration for the STUN server.\nStunMetrics tracked for the relay server\nA Tls wrapped tokio::net::TcpStream\nTLS configuration for Relay server.\nBurst limit for accepting new connection. Unlimited if not …\nRate limit for accepting new connection. Unlimited if not …\nNumber of connections we have accepted\nNumber of bad requests, either non-stun packets or …\nThe socket address on which the STUN server should bind.\nThe socket address on which the QUIC server should bind.\nMax number of bytes per second to read from the client …\nBytes received from a FrameType::SendPacket\nBytes sent from a FrameType::SendPacket\nMode for getting a cert.\nThe certificates chain if configured with manual TLS …\nRate limits for incoming traffic from a client connection.\nNumber of client connections which have had any frames …\nFrameType::SendPacket dropped that are disco messages\nFrameType::SendPacket received that are disco messages\nFrameType::SendPacket sent that are disco messages\nNumber of connections we have removed because of an error\nNumber of failures\nNumber of frames received from client connection which …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nNumber of FrameType::Pings received\nThe socket address the HTTP server is listening on.\nThe socket address on which the Relay HTTP server should …\nGet the server’s http RelayUrl.\nThe socket address the HTTPS server is listening on.\nThe socket address on which to serve the HTTPS server.\nGet the server’s https RelayUrl.\nPerform the initial load and construct the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nNumber of successful requests over ipv4\nNumber of successful requests over ipv6\nKey cache capacity.\nRate limits.\nMax number of bytes to read in a single burst.\nSocket to serve metrics on.\nPackets of other FrameTypes dropped\nPackets of other FrameTypes received\nPackets of other FrameTypes sent\nConfiguration for the QUIC server, disabled if None.\nThe socket address the QUIC server is listening on.\nThe socket address on which to server the QUIC server is …\nConfiguration for the Relay server, disabled if None.\nNumber of accepted ‘iroh derp http’ connection upgrades\nReload the certificate.\nNumber of stun requests made\nFrameType::SendPacket dropped, that are not disco messages\nFrameType::SendPacket received, that are not disco messages\nFrameType::SendPacket sent, that are not disco messages\nNumber of FrameType::Pongs sent\nThe TLS server configuration for the QUIC server.\nThe server configuration.\nShutdown the resolver.\nRequests graceful shutdown.\nStarts the server.\nConfiguration for the STUN server, disabled if None.\nThe socket address the STUN server is listening on.\nReturns the handle for the task.\nExposes functions to quickly configure a server suitable …\nTLS configuration for the HTTPS server.\nNumber of unique client keys per day\nNumber of FrameType::Unknown received\nNumber of accepted websocket connections\nThe TLS certificate chain.\nState for Let’s Encrypt certificates.\nCreates a QuicConfig suitable for testing.\nCreates a RelayConfig suitable for testing.\nCreates a rustls::ServerConfig and certificates suitable …\nCreates a ServerConfig suitable for testing.\nCreates a StunConfig suitable for testing.\nCreates a TlsConfig suitable for testing.") \ No newline at end of file +searchState.loadedDescShard("iroh_relay", 0, "Iroh’s relay is a feature within iroh, a peer-to-peer …\nConfiguration of all the relay servers that can be used.\nInformation on a specific relay server.\nConfiguration for speaking to the QUIC endpoint on the …\nExposes Client, which allows to establish connections to a …\nIs this a known node?\nCreates a new RelayMap with a single relay server …\nDefault values used in the relay.\nCreate an empty relay map.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nConstructs the RelayMap from an iterator of RelayNodes.\nReturns a RelayMap from a RelayUrl.\nGet the given node.\nHTTP-specific constants for the relay server and client.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nAre there any nodes in this map?\nHow many nodes are known?\nReturns an Iterator over all known nodes.\nThe port on which the connection should be bound to.\nProtocols used by the iroh-relay\nCreate a QUIC server that accepts connections for QUIC …\nConfiguration to speak to the QUIC endpoint on the relay …\nA fully-fledged iroh-relay server over HTTP or HTTPS.\nWhether this relay server should only be used for STUN …\nThe stun port of the relay server.\nThe RelayUrl where this relay server can be dialed.\nReturns the sorted relay URLs.\nThe inner actor is gone, likely means things are shutdown.\nThe relay super::client::Client failed to build\nAn HTTP Relay client.\nBuild a Client.\nPossible connection errors on the Client\nThe client is closed\nThere was a connection timeout error\nThere was an error dialing\nThere was an error with DNS resolution\nA one-way message from server to client, declaring the …\nThere was an http error http::Error.\nThere was http server hyper::Error\nBoth IPv4 and IPv6 are disabled for this relay node\nThe given Url is invalid\nA one-way empty message from server to client, just to …\nNo local addresses exist\nIndicates that the client identified by the underlying …\nRequest from a client or server to reply to the other side …\nThe ping request was aborted\nThe ping request timed out\nReply to a ReceivedMessage::Ping from a client or server …\nThe connection failed to proxy\nThere was an error receiving a packet\nThe messages received from a framed relay stream.\nRepresents an incoming packet.\nThere was an error sending a packet\nA one-way message from server to client, advertising that …\nThere was an unexpected status code\nThe connection failed to upgrade\nAn error related to websockets, either errors with parsing …\nReturns if we should prefer ipv6 it replaces the …\nBuild the Client\nClose the http relay connection.\nConnects to a relay Server and returns the underlying …\nFinish a ping message\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nSkip the verification of the relay server’s SSL …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns true if the underlying relay connection is …\nIndicates this client is a prober\nSet the capacity of the cache for public keys.\nGet the local addr of the connection. If there is no …\nCreates a client config that trusts any servers without …\nCreate a new ClientBuilder\nLet the server know that this client is the preferred …\nSets whether to connect to the relay via websockets or not.\nSet an explicit proxy url to proxy all HTTP(S) traffic …\nReads a message from the server.\nSend a packet to the server.\nSend a pong back to the server.\nThe expected PublicKey of the relay server we are …\nSets the server url\nSend a ping to the server. Return once we get an expected …\nThe received packet bytes.\nIf set, is a description of why the connection is …\nAn advisory duration that the client should wait before …\nThe NodeId of the packet sender.\nAn advisory duration for how long the client should …\nThe default HTTPS port used by the Relay server.\nThe default HTTP port used by the Relay server.\nThe default capacity of the key cache for the relay server.\nThe default metrics port used by the Relay server.\nThe default QUIC port used by the Relay server to accept …\nThe default STUN port used by the Relay server.\nThe HTTP upgrade protocol used for relaying.\nThe HTTP path under which the relay accepts relaying …\nThe HTTP path under which the relay allows doing latency …\nRelays over the custom relaying protocol with a custom …\nRelays over websockets.\nReturns the argument unchanged.\nCalls U::from(self).\nTries to match the value of an HTTP upgrade header to …\nThe HTTP upgrade header used or expected.\nThis module exports looks_like_disco_wrapper as the only …\nThis module implements the relaying protocol used by the …\nSTUN packets sending and receiving.\nThe 6 byte header of all discovery messages.\nReports whether p looks like it’s a packet containing an …\nThe maximum size of a packet sent over relay. (This only …\nThe AlternateServeratribute\nErrors that can occur when handling a STUN packet.\nThe ErrorCodeatribute\nerror response\nThe Fingerprintatribute\nindication\nSTUN request had bogus fingerprint.\nThe STUN message could not be parsed or is otherwise …\nSTUN response has malformed attributes.\nThe MappedAddressatribute\nThe STUN message class. Although there are four message …\nClass used to decode STUN messages\nThe MessageIntegrityatribute\nThe MessageIntegritySha256atribute\nSTUN request didn’t end in fingerprint.\nThe Nonceatribute\nSTUN request is not a binding request when it should be.\nSTUN packet is not a response when it should be.\nThe PasswordAlgorithmatribute\nThe PasswordAlgorithmsatribute\nThe Realmatribute\nrequest\nThe Softwareatribute\nSTUN Attributes that can be attached to a StunMessage\nDescribes an error decoding a StunMessage\nsuccess response\nThe transaction ID is a 96-bit identifier, used to …\nThe Unknownatribute\nThe UnknownAttributesatribute\nThe UserHashatribute\nThe UserNameatribute\nThe XorMappedAddressatribute\nReturns a reference to the internal attribute value or an …\nReturns a reference to the bytes that represents the …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns a reference to the internal attribute value or an …\nReturns the STUN attribute type of this instance.\nDecodes the STUN raw buffer\nCreates a cryptographically random transaction ID chosen …\nReturns a reference to the AlternateServer attribute.\nReturns a reference to the ErrorCode attribute.\nReturns a reference to the Fingerprint attribute.\nReturns a reference to the MappedAddress attribute.\nReturns a reference to the MessageIntegrity attribute.\nReturns a reference to the MessageIntegritySha256 …\nReturns a reference to the Nonce attribute.\nReturns a reference to the PasswordAlgorithm attribute.\nReturns a reference to the PasswordAlgorithms attribute.\nReturns a reference to the Realm attribute.\nReturns a reference to the Software attribute.\nReturns a reference to the Unknown attribute.\nReturns a reference to the UnknownAttributes attribute.\nReturns a reference to the UserHash attribute.\nReturns a reference to the UserName attribute.\nReturns a reference to the XorMappedAddress attribute.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nGets the context associated to this decoder\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReports whether b is a STUN message.\nReturns true if this StunAttribute is AlternateServer\nReturns true if this StunAttribute is ErrorCode\nReturns true if this StunAttribute is Fingerprint\nReturns true if this StunAttribute is MappedAddress\nReturns true if this StunAttribute is MessageIntegrity\nReturns true if this StunAttribute is …\nReturns true if this StunAttribute is Nonce\nReturns true if this StunAttribute is PasswordAlgorithm\nReturns true if this StunAttribute is PasswordAlgorithms\nReturns true if this StunAttribute is Realm\nReturns true if this StunAttribute is Software\nReturns true if this StunAttribute is Unknown\nReturns true if this StunAttribute is UnknownAttributes\nReturns true if this StunAttribute is UserHash\nReturns true if this StunAttribute is UserName\nReturns true if this StunAttribute is XorMappedAddress\nSTUN Methods Registry\nParses a STUN binding request.\nParses a successful binding response STUN packet. The IP …\nGenerates a binding request STUN packet.\nGenerates a binding response.\nBinding\nReserved\nShared secret\nALPN for our quic addr discovery\nEndpoint close error code\nEndpoint close reason\nHandles the client side of QUIC address discovery.\nReturns the argument unchanged.\nClient side of QUIC address discovery.\nCalls U::from(self).\nCreate a new QuicClient to handle the client side of QUIC …\nTLS certificate configuration.\nPer-client rate limit configuration.\nThe default certificate reload interval.\nUse Let’s Encrypt.\nRate limits.\nUse a static TLS key and certificate chain.\nThe main underlying IO stream type used for the relay …\nMetrics tracked for the relay server\nA plain non-Tls tokio::net::TcpStream\nConfiguration for the QUIC server.\nConfiguration for the Relay HTTP and HTTPS server.\nUse a TLS key and certificate chain that can be reloaded.\nA Certificate resolver that reloads the certificate every …\nA running Relay + STUN server.\nConfiguration for the full Relay & STUN server.\nConfiguration for the STUN server.\nStunMetrics tracked for the relay server\nA Tls wrapped tokio::net::TcpStream\nTLS configuration for Relay server.\nBurst limit for accepting new connection. Unlimited if not …\nRate limit for accepting new connection. Unlimited if not …\nNumber of connections we have accepted\nNumber of bad requests, either non-stun packets or …\nThe socket address on which the STUN server should bind.\nThe socket address on which the QUIC server should bind.\nMax number of bytes per second to read from the client …\nBytes received from a FrameType::SendPacket\nBytes sent from a FrameType::SendPacket\nMode for getting a cert.\nThe certificates chain if configured with manual TLS …\nRate limits for incoming traffic from a client connection.\nNumber of client connections which have had any frames …\nFrameType::SendPacket dropped that are disco messages\nFrameType::SendPacket received that are disco messages\nFrameType::SendPacket sent that are disco messages\nNumber of connections we have removed because of an error\nNumber of failures\nNumber of frames received from client connection which …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nNumber of FrameType::Pings received\nThe socket address the HTTP server is listening on.\nThe socket address on which the Relay HTTP server should …\nGet the server’s http RelayUrl.\nThe socket address the HTTPS server is listening on.\nThe socket address on which to serve the HTTPS server.\nGet the server’s https RelayUrl.\nPerform the initial load and construct the …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nNumber of successful requests over ipv4\nNumber of successful requests over ipv6\nKey cache capacity.\nRate limits.\nMax number of bytes to read in a single burst.\nSocket to serve metrics on.\nPackets of other FrameTypes dropped\nPackets of other FrameTypes received\nPackets of other FrameTypes sent\nConfiguration for the QUIC server, disabled if None.\nThe socket address the QUIC server is listening on.\nThe socket address on which to server the QUIC server is …\nConfiguration for the Relay server, disabled if None.\nNumber of accepted ‘iroh derp http’ connection upgrades\nReload the certificate.\nNumber of stun requests made\nFrameType::SendPacket dropped, that are not disco messages\nFrameType::SendPacket received, that are not disco messages\nFrameType::SendPacket sent, that are not disco messages\nNumber of FrameType::Pongs sent\nThe TLS server configuration for the QUIC server.\nThe server configuration.\nShutdown the resolver.\nRequests graceful shutdown.\nStarts the server.\nConfiguration for the STUN server, disabled if None.\nThe socket address the STUN server is listening on.\nReturns the handle for the task.\nExposes functions to quickly configure a server suitable …\nTLS configuration for the HTTPS server.\nNumber of unique client keys per day\nNumber of FrameType::Unknown received\nNumber of accepted websocket connections\nThe TLS certificate chain.\nState for Let’s Encrypt certificates.\nCreates a QuicConfig suitable for testing.\nCreates a RelayConfig suitable for testing.\nCreates a rustls::ServerConfig and certificates suitable …\nCreates a ServerConfig suitable for testing.\nCreates a StunConfig suitable for testing.\nCreates a TlsConfig suitable for testing.") \ No newline at end of file diff --git a/pr/3069/docs/src/iroh_relay/client.rs.html b/pr/3069/docs/src/iroh_relay/client.rs.html index 548b0b68ad..e2ebf00915 100644 --- a/pr/3069/docs/src/iroh_relay/client.rs.html +++ b/pr/3069/docs/src/iroh_relay/client.rs.html @@ -981,19 +981,7 @@ 980 981 982 -983 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995

//! Exposes [`Client`], which allows to establish connections to a relay server.
+983
//! Exposes [`Client`], which allows to establish connections to a relay server.
 //!
 //! Based on tailscale/derp/derphttp/derphttp_client.go
 
@@ -1109,7 +1097,6 @@
 /// Cheaply clonable.
 #[derive(derive_more::Debug)]
 pub struct Client {
-    public_key: PublicKey,
     secret_key: SecretKey,
     is_preferred: bool,
     relay_conn: Option<(Conn, Option<SocketAddr>)>,
@@ -1265,10 +1252,8 @@
         config.resumption = Resumption::default();
 
         let tls_connector: tokio_rustls::TlsConnector = Arc::new(config).into();
-        let public_key = key.public();
 
         let mut client = Client {
-            public_key,
             secret_key: key,
             is_preferred: false,
             relay_conn: None,
@@ -1316,9 +1301,30 @@
 }
 
 impl Client {
-    /// The public key for this client
-    pub fn public_key(&self) -> PublicKey {
-        self.public_key
+    /// Reads a message from the server.
+    pub async fn recv(&mut self) -> Option<Result<ReceivedMessage, ClientError>> {
+        if let Some((conn, _)) = self.relay_conn.as_mut() {
+            match tokio::time::timeout(CLIENT_RECV_TIMEOUT, conn.next()).await {
+                Ok(Some(Ok(msg))) => Some(Ok(msg)),
+                Ok(Some(Err(e))) => {
+                    self.close_for_reconnect().await;
+                    if self.is_closed {
+                        return Some(Err(ClientError::Closed));
+                    }
+                    Some(Err(ClientError::Receive(e)))
+                }
+                Ok(None) => {
+                    self.close_for_reconnect().await;
+                    None
+                }
+                Err(_) => {
+                    self.close_for_reconnect().await;
+                    Some(Err(ClientError::Closed))
+                }
+            }
+        } else {
+            future::pending().await
+        }
     }
 
     /// Connects to a relay Server and returns the underlying relay connection.
@@ -1524,11 +1530,7 @@
         if self.is_closed {
             return None;
         }
-        if let Some((_, local_addr)) = self.relay_conn {
-            local_addr
-        } else {
-            None
-        }
+        self.relay_conn.as_ref().and_then(|(_, addr)| *addr)
     }
 
     /// Send a ping to the server. Return once we get an expected pong.
@@ -1789,37 +1791,11 @@
         }
     }
 
-    /// Reads a message from the server.
-    pub async fn recv(&mut self) -> Option<Result<ReceivedMessage, ClientError>> {
-        if let Some((conn, _)) = self.relay_conn.as_mut() {
-            match tokio::time::timeout(CLIENT_RECV_TIMEOUT, conn.next()).await {
-                Ok(Some(Ok(msg))) => Some(Ok(msg)),
-                Ok(Some(Err(e))) => {
-                    self.close_for_reconnect().await;
-                    if self.is_closed {
-                        return Some(Err(ClientError::Closed));
-                    }
-                    Some(Err(ClientError::Receive(e)))
-                }
-                Ok(None) => {
-                    self.close_for_reconnect().await;
-                    None
-                }
-                Err(_) => {
-                    self.close_for_reconnect().await;
-                    Some(Err(ClientError::Closed))
-                }
-            }
-        } else {
-            future::pending().await
-        }
-    }
-
     /// Disconnect the http relay connection.
     ///
     /// Closes the underlying relay connection. The next time the client takes some action that
     /// requires a connection, it will call `connect`.
-    pub async fn close_for_reconnect(&mut self) {
+    async fn close_for_reconnect(&mut self) {
         debug!("close for reconnect");
         if let Some((ref mut conn, _)) = self.relay_conn.take() {
             conn.close().await