Packet #9610101 Success

TRACEROUTE_APP packet from Meshtastic dmtr (πŸ‰) to Meshtastic MMMM (πŸ’˜)

19
Total Receptions
19
Unique Gateways
6
Hop Count
88
Payload Bytes
Packet Information
Database ID: 9610101
Mesh Packet ID: 0x8eb8b674
Used for correlation across gateways
Timestamp: 2026-02-17 17:44:40 UTC
From Node: Meshtastic dmtr (πŸ‰)
To Node: Meshtastic MMMM (πŸ’˜)
Success: Processed
Protocol: TRACEROUTE_APP
Port: 70
Gateway: Dragon868-1 (D1)
Channel: LongFast
RSSI: -78 dBm
SNR: 5.5 dBm
Hop Info: 6/7 hops
Start: 7, Limit: 1
Payload Data
Protocol: TRACEROUTE_APP
Size: 88 bytes
Decoded: Yes
Decoded Data:
Route Information
Route Path: Kazakova 8b9c (krdk) β†’ Apollo_Baumanka_868 (ApB8) β†’ ZAO Mozhaisky 872c #LF #868 asl1 (asl1) β†’ R5BL (LF) (R5BL) β†’ Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84) β†’ FDMA
Hop Count: 5 hops
Status: Incomplete - Final destination not reached
SNR Towards: -2.25 dB -11.75 dB -11.25 dB -13.25 dB -15.75 dB -9.5 dB
Route Visualization
Loading...

Loading route map...

Map shows the geographic path if nodes have shared location data.
Traceroute Steps
Total Forward Distance
1113.54 km
Combined Traceroute Graph
Controls: Drag nodes to rearrange β€’ Mouse wheel to zoom β€’ Click and drag background to pan β€’ Hover for details
Loading graph...

Building graph...

Legend & Paths
Nodes
πŸ”„ Router Node
πŸ“‘ Gateway Node
πŸš€ Source Node
🎯 Target Node
Connections
RF Link
Gateway Connection
Direct Reception (0 hops)
Packet Paths
Loading paths...
Raw Packet Analysis
Complete field breakdown and MQTT privacy/exposure analysis
Packet Structure
MQTT Packet Flow:
ServiceEnvelope (MQTT layer) β†’ MeshPacket (Mesh layer) β†’ Decoded Payload (Application data)
Total Size:88 bytes
Gateway:!9e9e3440
Channel:LongFast
Payload Type:TRACEROUTE_APP
Hop Count:6 / 7
Privacy Summary
Exposure Level:
Direct Message
Privacy Features:
βœ“ Direct LoRa transmission (not via MQTT)
βœ“ Acknowledgment requested
+ 2 more...
Exposure Risks:
⚠ Default channel - no encryption
⚠ Packet visible to MQTT subscribers
+ 2 more...
MQTT ServiceEnvelope Fields

MQTT ServiceEnvelope contains the MeshPacket plus routing metadata

FieldValue
gateway_id !9e9e3440
Node ID format
channel_id LongFast
Default public channel
packet MeshPacket (88 bytes)
Contains the actual mesh network packet
MeshPacket Fields

Core mesh packet with routing and payload information

FieldValueType
from 2896864768
Source node ID
uint32
to 2896902552
Target node ID
uint32
decoded.portnum 70
TRACEROUTE_APP
enum
decoded.payload_length 88 bytes size
hop_limit 1
Remaining hops allowed
uint32
hop_start 7
Initial hop limit
uint32
hops_taken 6
Calculated: hop_start - hop_limit
derived
rx_rssi -78.0 dBm
Signal strength at gateway
int32
rx_snr 5.50 dB
Signal quality at gateway
float
rx_time 1771339480
Receive timestamp
fixed32
via_mqtt False
Direct LoRa transmission
bool
want_ack True
Acknowledgment requested
bool
priority Not set enum
delayed Not set enum
channel Not set uint32
pki_encrypted False
Standard encryption
bool
next_hop Not set uint32
relay_node 60
Relay node ID
uint32
tx_after Not set uint32
timestamp 1771339480.511859
Unix timestamp
uint32
MQTT Privacy & Exposure Analysis

Analysis of privacy features and exposure risks when packet is shared via MQTT

Exposure Level: Direct Message
Privacy Features:
  • βœ“ Direct LoRa transmission (not via MQTT)
  • βœ“ Acknowledgment requested
  • βœ“ Targeted to specific node
  • βœ“ Gateway node ID tracked
Exposure Risks:
  • ⚠ Default channel - no encryption
  • ⚠ Packet visible to MQTT subscribers
  • ⚠ Multi-hop path visible (6 hops)
  • ⚠ RF signal metrics exposed (location inference possible)
MQTT-Specific Fields
Want ack: True
Gateway ID: !9e9e3440
Signal Metrics: RSSI: -78.0 dBm
SNR: 5.50 dB
Complete Payload Analysis

Detailed breakdown of all payload fields and decoded data

Payload Metadata:
Protocol:TRACEROUTE_APP
Size:88 bytes
Decoded: Yes
Complete Payload Data (JSON):
{ "route_nodes": [ 3679619996, 886732792, 2997323564, 1439093364, 4188880772, 1770270780 ], "snr_towards": [ -2.25, -11.75, -11.25, -13.25, -15.75, -9.5 ], "route_back": [], "snr_back": [], "route_node_names": { "2896864768": "Meshtastic dmtr (πŸ‰)", "4188880772": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "2896902552": "Meshtastic MMMM (πŸ’˜)", "2997323564": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "1770270780": "FDMA", "1439093364": "R5BL (LF) (R5BL)", "886732792": "Apollo_Baumanka_868 (ApB8)", "3679619996": "Kazakova 8b9c (krdk)" }, "traceroute_packet": { "packet_data": { "id": 9610101, "timestamp": 1771339480.511859, "from_node_id": 2896864768, "to_node_id": 2896902552, "portnum": 70, "portnum_name": "TRACEROUTE_APP", "gateway_id": "!9e9e3440", "channel_id": "LongFast", "mesh_packet_id": 2394470004, "rssi": -78, "snr": 5.5, "hop_limit": 1, "hop_start": 7, "payload_length": 88, "processed_successfully": 1, "raw_payload": "0a189c8b52dbf877da342c87a7b274d2c655843fadf93c308469123cf7ffffffffffffffff01d1ffffffffffffffff01d3ffffffffffffffff01cbffffffffffffffff01c1ffffffffffffffff01daffffffffffffffff01", "via_mqtt": 0, "want_ack": 1, "priority": 0, "delayed": 0, "channel_index": null, "rx_time": 1771339480, "pki_encrypted": 0, "next_hop": 0, "relay_node": 60, "tx_after": 0, "timestamp_str": "2026-02-17 17:44:40", "hop_count": 6, "has_payload": true, "success": 1, "from_node_name": "Meshtastic dmtr (πŸ‰)", "to_node_name": "Meshtastic MMMM (πŸ’˜)", "gateway_name": "Dragon868-1 (D1)", "gateway_location": { "node_id": 2661168192, "latitude": 55.6416, "longitude": 37.3429, "altitude": null, "timestamp": 1771784915.400869, "timestamp_str": "2026-02-22 21:28:35", "display_name": "Dragon868-1", "long_name": "Dragon868-1", "short_name": "D1", "hw_model": "HELTEC_V3" } }, "resolve_names": true, "packet_id": 9610101, "from_node_id": 2896864768, "to_node_id": 2896902552, "timestamp": 1771339480.511859, "gateway_id": "!9e9e3440", "raw_payload": "0a189c8b52dbf877da342c87a7b274d2c655843fadf93c308469123cf7ffffffffffffffff01d1ffffffffffffffff01d3ffffffffffffffff01cbffffffffffffffff01c1ffffffffffffffff01daffffffffffffffff01", "hop_limit": 1, "hop_start": 7, "from_node_name": "Meshtastic dmtr (πŸ‰)", "to_node_name": "!acab3998", "route_data": { "route_nodes": [ 3679619996, 886732792, 2997323564, 1439093364, 4188880772, 1770270780 ], "snr_towards": [ -2.25, -11.75, -11.25, -13.25, -15.75, -9.5 ], "route_back": [], "snr_back": [] }, "forward_path": { "path_type": "forward", "node_ids": [ 2896864768, 3679619996, 886732792, 2997323564, 1439093364, 4188880772, 1770270780 ], "node_names": [ "Meshtastic dmtr (πŸ‰)", "Kazakova 8b9c (krdk)", "Apollo_Baumanka_868 (ApB8)", "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "R5BL (LF) (R5BL)", "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "FDMA" ], "snr_values": [ -2.25, -11.75, -11.25, -13.25, -15.75, -9.5 ], "hops": [ { "hop_number": 1, "from_node_id": 2896864768, "to_node_id": 3679619996, "from_node_name": "Meshtastic dmtr (πŸ‰)", "to_node_name": "Kazakova 8b9c (krdk)", "snr": -2.25, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 2, "from_node_id": 3679619996, "to_node_id": 886732792, "from_node_name": "Kazakova 8b9c (krdk)", "to_node_name": "Apollo_Baumanka_868 (ApB8)", "snr": -11.75, "direction": "forward", "is_target_hop": false, "distance_meters": 1321.31597177106, "from_location_timestamp": 1771324427.994018, "to_location_timestamp": 1771264741.4362724, "from_location_age_warning": "from 4.2h ago", "to_location_age_warning": "from 20.8h ago" }, { "hop_number": 3, "from_node_id": 886732792, "to_node_id": 2997323564, "from_node_name": "Apollo_Baumanka_868 (ApB8)", "to_node_name": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "snr": -11.25, "direction": "forward", "is_target_hop": false, "distance_meters": 18638.580007423225, "from_location_timestamp": 1771264741.4362724, "to_location_timestamp": 1771236730.640928, "from_location_age_warning": "from 20.8h ago", "to_location_age_warning": "from 1.2d ago" }, { "hop_number": 4, "from_node_id": 2997323564, "to_node_id": 1439093364, "from_node_name": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "to_node_name": "R5BL (LF) (R5BL)", "snr": -13.25, "direction": "forward", "is_target_hop": false, "distance_meters": 548124.8722466407, "from_location_timestamp": 1771236730.640928, "to_location_timestamp": 1770625065.9592965, "from_location_age_warning": "from 1.2d ago", "to_location_age_warning": "from 1.2w ago" }, { "hop_number": 5, "from_node_id": 1439093364, "to_node_id": 4188880772, "from_node_name": "R5BL (LF) (R5BL)", "to_node_name": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "snr": -15.75, "direction": "forward", "is_target_hop": false, "distance_meters": 545455.7501547995, "from_location_timestamp": 1770625065.9592965, "to_location_timestamp": 1771277521.7689528, "from_location_age_warning": "from 1.2w ago", "to_location_age_warning": "from 17.2h ago" }, { "hop_number": 6, "from_node_id": 4188880772, "to_node_id": 1770270780, "from_node_name": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "to_node_name": "FDMA", "snr": -9.5, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" } ], "is_complete": false, "total_hops": 6 }, "return_path": null, "actual_rf_path": { "path_type": "forward_rf", "node_ids": [ 2896864768, 3679619996, 886732792, 2997323564, 1439093364, 4188880772, 1770270780 ], "node_names": [ "Meshtastic dmtr (πŸ‰)", "Kazakova 8b9c (krdk)", "Apollo_Baumanka_868 (ApB8)", "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "R5BL (LF) (R5BL)", "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "FDMA" ], "snr_values": [ -2.25, -11.75, -11.25, -13.25, -15.75, -9.5 ], "hops": [ { "hop_number": 1, "from_node_id": 2896864768, "to_node_id": 3679619996, "from_node_name": "Meshtastic dmtr (πŸ‰)", "to_node_name": "Kazakova 8b9c (krdk)", "snr": -2.25, "direction": "forward_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 2, "from_node_id": 3679619996, "to_node_id": 886732792, "from_node_name": "Kazakova 8b9c (krdk)", "to_node_name": "Apollo_Baumanka_868 (ApB8)", "snr": -11.75, "direction": "forward_rf", "is_target_hop": false, "distance_meters": 1321.31597177106, "from_location_timestamp": 1771324427.994018, "to_location_timestamp": 1771264741.4362724, "from_location_age_warning": "from 4.2h ago", "to_location_age_warning": "from 20.8h ago" }, { "hop_number": 3, "from_node_id": 886732792, "to_node_id": 2997323564, "from_node_name": "Apollo_Baumanka_868 (ApB8)", "to_node_name": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "snr": -11.25, "direction": "forward_rf", "is_target_hop": false, "distance_meters": 18638.580007423225, "from_location_timestamp": 1771264741.4362724, "to_location_timestamp": 1771236730.640928, "from_location_age_warning": "from 20.8h ago", "to_location_age_warning": "from 1.2d ago" }, { "hop_number": 4, "from_node_id": 2997323564, "to_node_id": 1439093364, "from_node_name": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "to_node_name": "R5BL (LF) (R5BL)", "snr": -13.25, "direction": "forward_rf", "is_target_hop": false, "distance_meters": 548124.8722466407, "from_location_timestamp": 1771236730.640928, "to_location_timestamp": 1770625065.9592965, "from_location_age_warning": "from 1.2d ago", "to_location_age_warning": "from 1.2w ago" }, { "hop_number": 5, "from_node_id": 1439093364, "to_node_id": 4188880772, "from_node_name": "R5BL (LF) (R5BL)", "to_node_name": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "snr": -15.75, "direction": "forward_rf", "is_target_hop": false, "distance_meters": 545455.7501547995, "from_location_timestamp": 1770625065.9592965, "to_location_timestamp": 1771277521.7689528, "from_location_age_warning": "from 1.2w ago", "to_location_age_warning": "from 17.2h ago" }, { "hop_number": 6, "from_node_id": 4188880772, "to_node_id": 1770270780, "from_node_name": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "to_node_name": "FDMA", "snr": -9.5, "direction": "forward_rf", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" } ], "is_complete": false, "total_hops": 6 } }, "has_return_path": false, "is_complete": false, "forward_path_display": "Meshtastic dmtr (πŸ‰) β†’ Kazakova 8b9c (krdk) β†’ Apollo_Baumanka_868 (ApB8) β†’ ZAO Mozhaisky 872c #LF #868 asl1 (asl1) β†’ R5BL (LF) (R5BL) β†’ Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84) β†’ FDMA", "return_path_display": null, "actual_rf_path_display": "Meshtastic dmtr (πŸ‰) β†’ Kazakova 8b9c (krdk) β†’ Apollo_Baumanka_868 (ApB8) β†’ ZAO Mozhaisky 872c #LF #868 asl1 (asl1) β†’ R5BL (LF) (R5BL) β†’ Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84) β†’ FDMA", "forward_hops": [ { "hop_number": 1, "from_node_id": 2896864768, "to_node_id": 3679619996, "from_node_name": "Meshtastic dmtr (πŸ‰)", "to_node_name": "Kazakova 8b9c (krdk)", "snr": -2.25, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" }, { "hop_number": 2, "from_node_id": 3679619996, "to_node_id": 886732792, "from_node_name": "Kazakova 8b9c (krdk)", "to_node_name": "Apollo_Baumanka_868 (ApB8)", "snr": -11.75, "direction": "forward", "is_target_hop": false, "distance_meters": 1321.31597177106, "from_location_timestamp": 1771324427.994018, "to_location_timestamp": 1771264741.4362724, "from_location_age_warning": "from 4.2h ago", "to_location_age_warning": "from 20.8h ago" }, { "hop_number": 3, "from_node_id": 886732792, "to_node_id": 2997323564, "from_node_name": "Apollo_Baumanka_868 (ApB8)", "to_node_name": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "snr": -11.25, "direction": "forward", "is_target_hop": false, "distance_meters": 18638.580007423225, "from_location_timestamp": 1771264741.4362724, "to_location_timestamp": 1771236730.640928, "from_location_age_warning": "from 20.8h ago", "to_location_age_warning": "from 1.2d ago" }, { "hop_number": 4, "from_node_id": 2997323564, "to_node_id": 1439093364, "from_node_name": "ZAO Mozhaisky 872c #LF #868 asl1 (asl1)", "to_node_name": "R5BL (LF) (R5BL)", "snr": -13.25, "direction": "forward", "is_target_hop": false, "distance_meters": 548124.8722466407, "from_location_timestamp": 1771236730.640928, "to_location_timestamp": 1770625065.9592965, "from_location_age_warning": "from 1.2d ago", "to_location_age_warning": "from 1.2w ago" }, { "hop_number": 5, "from_node_id": 1439093364, "to_node_id": 4188880772, "from_node_name": "R5BL (LF) (R5BL)", "to_node_name": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "snr": -15.75, "direction": "forward", "is_target_hop": false, "distance_meters": 545455.7501547995, "from_location_timestamp": 1770625065.9592965, "to_location_timestamp": 1771277521.7689528, "from_location_age_warning": "from 1.2w ago", "to_location_age_warning": "from 17.2h ago" }, { "hop_number": 6, "from_node_id": 4188880772, "to_node_id": 1770270780, "from_node_name": "Meshtastic 3f84 πŸ΄β€β˜ οΈ (3f84)", "to_node_name": "FDMA", "snr": -9.5, "direction": "forward", "is_target_hop": false, "distance_meters": null, "from_location_timestamp": null, "to_location_timestamp": null, "from_location_age_warning": "No location data available", "to_location_age_warning": "No location data available" } ], "return_hops": [], "total_forward_distance": 1113540.5183806345, "total_return_distance": null }
Complete Protobuf Decode (JSON)
{ "service_envelope": { "gateway_id": "!9e9e3440", "channel_id": "LongFast", "packet": "MeshPacket (see mesh_packet below)" }, "mesh_packet": { "from": 2896864768, "to": 2896902552, "id": 2394470004, "rx_time": 1771339480, "rx_snr": 5.5, "rx_rssi": -78, "hop_limit": 1, "hop_start": 7, "via_mqtt": 0, "want_ack": 1, "priority": 0, "delayed": 0, "channel_index": null, "pki_encrypted": 0, "next_hop": 0, "relay_node": 60, "tx_after": 0, "decoded": { "portnum": 70, "payload": "0a189c8b52dbf877da342c87a7b274d2c655843fadf93c308469123cf7ffffffffffffffff01d1ffffffffffffffff01d3ffffffffffffffff01cbffffffffffffffff01c1ffffffffffffffff01daffffffffffffffff01", "want_response": null, "dest": null, "source": null, "request_id": null, "reply_id": null, "emoji": null, "parsed_payload": { "route": [ 3679619996, 886732792, 2997323564, 1439093364, 4188880772, 1770270780 ], "snr_towards": [ -9, -47, -45, -53, -63, -38 ], "type": "protobuf", "portnum": "TRACEROUTE_APP", "message_class": "RouteDiscovery" } } } }
Raw Packet Data (88 bytes)
0a189c8b52dbf877da342c87a7b274d2c655843fadf93c308469123cf7ffffffffffffffff01d1ffffffffffffffff01d3ffffffffffffffff01cbffffffffffffffff01c1ffffffffffffffff01daffffffffffffffff01
Hex Analysis:
Size:88 bytes
Format:Protobuf (Protocol Buffers)
Encoding:Binary with varint and length-delimited fields
This is the raw protobuf-encoded payload as received from MQTT. The structure follows the Meshtastic protobuf schema definitions.
All Receptions
All gateways that received this packet
Correlation: Using Mesh Packet ID
Reception Locations
Loading...

Loading reception map...

Map shows gateway locations that received this packet. Hop counts are displayed if available.
Gateway Time Offset RSSI SNR Hops Channel Timestamp Actions
Dragon868-1 (D1) Primary 0.000s
Reference
-78.0 dBm 5.50 dB 6 LongFast 2026-02-17 17:44:40 Current
Cyb (17e8) -20.218s
Before
-112.0 dBm -19.00 dB 2 LongFast 2026-02-17 17:44:20 View
EGarpunov 2 868 (Base) (BAO) (EG28) -20.200s
Before
-114.0 dBm -6.75 dB 2 LongFast 2026-02-17 17:44:20 View
SYSXX YGW8 (SXY8) -20.165s
Before
-100.0 dBm -11.50 dB 2 LongFast 2026-02-17 17:44:20 View
Aster-02 (AST2) -20.142s
Before
-103.0 dBm -12.25 dB 2 LongFast 2026-02-17 17:44:20 View
Tsaritsyno_KB_V_868 (KBV8) -19.947s
Before
-102.0 dBm -16.25 dB 2 LongFast 2026-02-17 17:44:20 View
Butyrskaya 868 (But8) -19.918s
Before
-97.0 dBm -1.50 dB 2 LongFast 2026-02-17 17:44:20 View
Meshtastic c1e8 (c1e8) -18.634s
Before
-114.0 dBm -15.25 dB 3 LongFast 2026-02-17 17:44:21 View
AngryAn (πŸ‘») -17.306s
Before
-113.0 dBm -4.00 dB 3 LongFast 2026-02-17 17:44:23 View
Korolyok h0use (K8k*) -15.810s
Before
-119.0 dBm -7.50 dB 5 LongFast 2026-02-17 17:44:24 View
patch866 (pth8) -12.329s
Before
-68.0 dBm -0.50 dB 3 LongFast 2026-02-17 17:44:28 View
SYSXX BGW8 (SXB8) -10.442s
Before
-118.0 dBm -8.50 dB 4 LongFast 2026-02-17 17:44:30 View
Fostral (FSTR) -10.078s
Before
-79.0 dBm -17.25 dB 3 LongFast 2026-02-17 17:44:30 View
BBS Восток (DMπŸ“²) (BBSv) -9.980s
Before
-95.0 dBm -12.00 dB 3 LongFast 2026-02-17 17:44:30 View
Tsaritsyno_KB_U_868 (KBU8) -9.265s
Before
-56.0 dBm 5.75 dB 3 LongFast 2026-02-17 17:44:31 View
RN3ABX Georgy 2 (ABX2) -8.620s
Before
-105.0 dBm 2.25 dB 5 LongFast 2026-02-17 17:44:31 View
rodnik04 0116 (rod4) -6.914s
Before
-107.0 dBm -14.50 dB 5 LongFast 2026-02-17 17:44:33 View
svk2 883c SZAO Serebriany Bor (svk2) -2.591s
Before
-123.0 dBm -2.75 dB 5 LongFast 2026-02-17 17:44:37 View
SYSXX OGW8 (SXG8) +55.892s
After
-52.0 dBm 5.75 dB 5 LongFast 2026-02-17 17:45:36 View
19

Total Receptions

19

Unique Gateways