
GITNUXSOFTWARE ADVICE
TelecommunicationsTop 10 Best Lsp Software of 2026
Top 10 Lsp Software list with side-by-side comparisons and ranking criteria for teams evaluating tools like Sinch, Telnyx, and AWS Session Manager.
How we ranked these tools
Core product claims cross-referenced against official documentation, changelogs, and independent technical reviews.
Analyzed video reviews and hundreds of written evaluations to capture real-world user experiences with each tool.
AI persona simulations modeled how different user types would experience each tool across common use cases and workflows.
Final rankings reviewed and approved by our editorial team with authority to override AI-generated scores based on domain expertise.
Score: Features 40% · Ease 30% · Value 30%
Gitnux may earn a commission through links on this page — this does not influence rankings. Editorial policy
Editor’s top 3 picks
Three quick recommendations before you dive into the full comparison below — each one leads on a different dimension.
Sinch
Webhook-based delivery and call status events for automation and audit-friendly operations.
Built for fits when integration teams need API-driven voice and messaging automation with strong governance..
Telnyx
Editor pickWebhook-driven event streams for voice calls and messaging delivery states tied to API-managed resources.
Built for fits when mid-size teams need API-led provisioning and webhook-driven control without manual operations..
AWS Systems Manager Session Manager
Editor pickSession recording for terminal activity stored with audit context.
Built for fits when managed fleets need audited interactive access without public jump host exposure..
Related reading
Comparison Table
This comparison table reviews Lsp Software tools by integration depth with identity and endpoint systems, with emphasis on each tool’s data model and schema for access requests and sessions. It also compares automation and the API surface for provisioning, policy checks, and session lifecycle control. Admin and governance controls are covered through RBAC scope, audit log coverage, and configuration options that affect throughput and operational limits.
Sinch
CPaaSMessaging and voice CPaaS services that support conversational and transactional messaging with routing and analytics.
Webhook-based delivery and call status events for automation and audit-friendly operations.
Sinch functions as an LSP integration layer by exposing voice and messaging capabilities through an API surface and webhook callbacks. The data model centers on accounts, destinations, message payloads, call flows, and delivery or call status events, which enables deterministic orchestration in external systems. Integration depth is strongest when applications need event-driven updates such as delivery receipts and call lifecycle events that feed business logic.
A tradeoff appears when teams want deep, app-specific orchestration inside Sinch rather than in their own services. Voice and messaging workflows still require external middleware for advanced branching, identity mapping, and idempotent retries. Sinch fits situations where governance and automation matter, such as provisioning per business unit and routing user communications based on internal schema and RBAC rules.
- +Event webhooks provide delivery and call lifecycle signals for orchestration
- +Granular account and configuration support per-tenant provisioning workflows
- +RBAC and admin operations reduce cross-team access risks
- +Schema-driven payload handling supports deterministic automation
- –Complex routing still needs external workflow logic for advanced branching
- –Throughput tuning often depends on middleware for retries and idempotency
Best for: Fits when integration teams need API-driven voice and messaging automation with strong governance.
Telnyx
telecom platformTelecom platform offering voice, SMS, and messaging APIs with real-time usage and webhook-driven event delivery.
Webhook-driven event streams for voice calls and messaging delivery states tied to API-managed resources.
Telnyx provides an API-first LSP toolchain for voice, SMS, MMS, and number provisioning, which supports direct integration into existing systems. The integration depth shows up in how webhook event payloads map to the same entities used in provisioning APIs, including call events, message delivery states, and routing configuration artifacts. Extensibility is handled through webhook-driven automation and configurable call and message behaviors rather than hardcoded workflows.
A concrete tradeoff is that correct integration depends on building against the event schema and state transitions for delivery and call lifecycle events. The usage fit is strongest when multiple services need consistent automation, such as contact center call handling and notification delivery that must coordinate with downstream CRM updates and retry logic.
- +API-driven provisioning for numbers, voice, and messaging resources
- +Webhook event model supports automation across call and message lifecycles
- +Routing and configuration map to the same entities used in API requests
- +RBAC and audit log support governance for configuration and access changes
- –Automation requires careful handling of event schema and state transitions
- –Advanced routing and call flows increase configuration and integration complexity
Best for: Fits when mid-size teams need API-led provisioning and webhook-driven control without manual operations.
AWS Systems Manager Session Manager
managed remote accessProvides authenticated shell access to managed instances through AWS Systems Manager without inbound SSH, using Session Manager documents and IAM controls.
Session recording for terminal activity stored with audit context.
Session Manager routes interactive connections for managed instances through the AWS Systems Manager agent and service-side session brokers, which avoids direct network exposure for administrators. The session data model includes session metadata, channel activity, and optional session recording artifacts that land in AWS audit and storage targets for later inspection. Integration depth shows up in how Session Manager ties into broader Systems Manager constructs like managed instance registration, tagging, and maintenance interactions. Governance controls map to IAM and Systems Manager access policies, so allowed actions and target scope can be enforced without custom bastion tooling.
A tradeoff appears when organizations need cross-account, internet-facing jump hosts or bespoke terminal brokers, because Session Manager is centered on managed instance registration and Systems Manager connectivity. A common fit is controlled operational access for fleets that already run the Systems Manager agent, where engineers need consistent interactive troubleshooting with audit log coverage. Another usage situation is regulated environments that require session recording and immutable review workflows, where session artifacts are retained and correlated with IAM identity. For teams that also use Automation documents, the same schema and API surface can drive hands-off remediation while still supporting interactive follow-up via sessions.
- +IAM-based RBAC scopes who can start sessions and which managed instances are eligible
- +Session recording and audit trails tie interactive actions to identities and timestamps
- +Target selection integrates with managed instance registration and tagging
- +Automation documents share the Systems Manager API surface for repeatable operations
- –Interactive access depends on managed instance registration and Systems Manager agent health
- –Custom terminal broker features require workarounds since the session transport is AWS-defined
Best for: Fits when managed fleets need audited interactive access without public jump host exposure.
Microsoft Azure Bastion
cloud bastionHosts RDP and SSH connections in Azure via the Bastion service, using Azure-managed certificate handling and Azure RBAC for access control.
Private access to VM RDP and SSH via a Bastion host without assigning public IPs to VMs
Azure Bastion provides browser-based management access to Azure virtual machines without public IP exposure. The service anchors the data model around Bastion hosts in a virtual network and routes RDP and SSH sessions to target VM network interfaces.
Integration depth comes from Azure RBAC for access control and from audit log entries that tie session activity to identities and resources. Automation and API surface center on standard Azure resource provisioning and configuration of Bastion host and network placement.
- +Browser-only RDP and SSH sessions reduce need for public jump hosts
- +Azure RBAC gates access to Bastion and target VM resources
- +Audit log records session actions with identity and resource context
- +Standard Azure resource provisioning supports repeatable deployments
- –Session access depends on Bastion host network reachability
- –Works only for Azure VMs, not arbitrary external SSH or RDP endpoints
- –Limited session recording and workflow automation compared to full bastion stacks
- –Operational changes require updating Bastion host configuration in the VNet
Best for: Fits when teams need controlled VM access with RBAC and auditability in Azure networks.
Google Cloud OS Login
IAM accessMaps IAM identities to Linux and Windows OS accounts on Compute Engine and enables SSH and RDP access using centralized IAM policies.
IAM to Linux user mapping with POSIX UID and GID assignment through OS Login.
Google Cloud OS Login controls SSH access to Compute Engine instances by mapping IAM identities to Linux accounts. The tool implements an explicit data model via user and group configuration on each VM and supports POSIX UID and GID controls.
Provisioning can be automated by managing IAM policies and OS Login settings through Google Cloud APIs and infrastructure workflows. Administration is driven by RBAC, instance-level configuration, and auditable access events tied to IAM principals.
- +IAM-based SSH authorization removes manual key handling on VMs
- +Per-VM OS Login configuration supports user and group schema mapping
- +Automation works through Google Cloud IAM and OS Login APIs
- +Audit trails align SSH activity with IAM principals and roles
- –RBAC design mistakes can block interactive access to instances
- –OS Login configuration adds VM-level management steps for images and policies
- –UID and group mapping requires careful coordination across environments
- –Lack of a self-service portal for shell account tailoring beyond configuration
Best for: Fits when teams standardize SSH access using IAM, audit logs, and API-driven provisioning.
Teleport
zero-trust accessCentralizes access to servers and Kubernetes with single sign-on, short-lived certificates, and audit logs while providing SSH and web access gateways.
RBAC plus audit logging for configuration changes to LSP endpoints and routing.
Teleport targets LSP workflows where integration depth matters more than editor-only features. Its data model centers on connectors, repositories, and runtime configuration that supports provisioning of language servers and their routing.
A documented API and automation surface enables schema-driven configuration, repeatable rollout, and environment parity across dev and CI. Admin governance relies on RBAC controls and audit logging so changes to server endpoints and permissions remain traceable.
- +API-first provisioning ties LSP routing to repeatable configuration
- +Connector and repository data model supports multi-environment deployments
- +RBAC controls limit who can change server endpoints
- +Audit logs provide traceability for configuration and permission changes
- –Schema changes can require coordinated updates across environments
- –Automation requires careful validation to prevent misrouted language servers
- –Advanced workflows depend on consistent connector and repository mapping
Best for: Fits when teams need API-driven LSP provisioning with RBAC governance and auditability.
Apache Guacamole
gatewayDelivers browser-based remote desktop and SSH access via a self-hosted gateway that tunnels connections to target hosts without exposing ports to clients.
Guacamole connection definitions with an HTTP API that supports automated user and connection management.
Apache Guacamole focuses on remote access brokering through a connection gateway that separates client sessions from backend targets. It models connections as resources backed by configurable data sources, which enables integration with multiple authentication and storage setups.
The automation surface centers on provisioning and configuration management, with an HTTP API for managing users, connections, and related state. Admin control depends on RBAC and configuration scoping, with audit and logging behavior tied to the deployment’s logging stack and Guacamole’s server logs.
- +Connection gateway separates UI sessions from backend protocol targets
- +API supports programmatic provisioning of users and connection definitions
- +Config-based data model maps to connection, user, and permission entities
- +Pluggable authentication backends support enterprise identity patterns
- –Automation relies on provisioning and configuration workflows rather than rich orchestration
- –Fine-grained RBAC and audit coverage depends on how permissions and logging are configured
- –Throughput and session limits require careful tuning of server and web components
- –Complex connection setups often need direct configuration changes or templating
Best for: Fits when teams need controlled remote access integration with an API-driven provisioning workflow.
Apache Apache Directory Studio
directory toolingProvides an LDAP client and tooling for directory operations that can support LSP access control and identity lookups backed by LDAP directories.
Schema browser and schema-aware entry editor driven by LDAP server schema discovery.
Apache Directory Studio functions as an LDAP directory admin client with a mapped data model for schema-aware browsing and editing. It integrates with common directory servers through LDAP connections and supports scripted and repeatable tasks via its Eclipse-based tooling and console mechanisms.
Automation and API surface are oriented around import and export workflows plus directory operations exposed through the client rather than headless provisioning. Admin control relies on directory-side access controls, with Studio providing role-scoped workflows and audit-adjacent operational visibility through logged actions.
- +Schema-aware editor for LDAP entries and attributes
- +Eclipse-based plugin extensibility for directory tooling
- +Export and import workflows for migration and provisioning
- +Connection profiles simplify repeatable environment access
- +Query builder supports structured searches and filters
- –No native headless service mode for automated provisioning
- –Limited governance primitives like RBAC and centralized audit log
- –Automation is client-driven instead of API-first
- –Throughput is constrained by interactive operations
Best for: Fits when teams need schema-aware LDAP management with tooling extensibility and repeatable workflows.
OpenLDAP
directory serverRuns an LDAP directory server for centralized user and group data used by authentication and authorization systems.
Overlays provide extensible server-side behavior without replacing the core LDAP protocol
OpenLDAP runs an LDAP directory server that stores entries and exposes them over standard LDAP APIs. The data model is driven by schemas with extensibility via custom schema and overlays, which affects validation and indexing behavior.
Integration depth is centered on directory replication, SASL authentication, and client interoperability through LDAP and LDAPS. Automation and API surface are available through LDAP operations, schema management tooling, and configuration files that administrators can generate and deploy consistently.
- +Schema-driven data model supports custom object classes and attribute rules
- +Replicates directories using standard replication mechanisms for multi-site distribution
- +Supports SASL and TLS for authentication and transport security integration
- +Extensible overlays add behaviors like access logging and custom operational attributes
- –Automation tooling around provisioning requires building around LDAP operations
- –Complex configuration and schema changes can require careful restart and rollout planning
- –RBAC and audit logging depend on access control rules and overlays
- –Administrative governance features are limited compared with full directory management suites
Best for: Fits when enterprises need controlled LDAP integration with schema, replication, and extensibility requirements.
Istio
service meshImplements traffic management and security controls for microservices with policy enforcement and service identity for distributed deployments.
VirtualService and DestinationRule CRDs for declarative, versionable traffic routing policies.
Istio fits teams that need service-mesh control with a formal configuration model and deep Kubernetes integration. It uses a declarative data model with Custom Resource Definitions for traffic management, security policy, and observability, so changes can be provisioned and versioned through GitOps.
Automation comes through its control plane and a Kubernetes-style API surface, with schema-driven validation for resources like VirtualService and DestinationRule. Governance is handled through RBAC, namespace scoping, and auditable configuration changes, with mesh telemetry available for policy verification.
- +Declarative CRD schema for traffic rules and security policy provisioning
- +Granular Kubernetes RBAC controls for configuration access
- +Consistent API surface for automation via Kubernetes controllers and tooling
- +Telemetry-ready config helps validate routing and policy enforcement
- +Extensibility via Envoy configuration generation and adapter patterns
- –Schema complexity requires careful change management across namespaces
- –Cross-cluster routing and policy can add operational overhead
- –Debugging depends on Envoy behavior and control plane reconciliation timing
- –Performance tuning needs attention to sidecar settings and resource limits
Best for: Fits when Kubernetes teams require API-driven traffic and security control across many services.
How to Choose the Right Lsp Software
This buyer’s guide covers Lsp software choices using concrete examples from Sinch, Telnyx, AWS Systems Manager Session Manager, Microsoft Azure Bastion, Google Cloud OS Login, Teleport, Apache Guacamole, Apache Directory Studio, OpenLDAP, and Istio.
The guide focuses on integration depth, data model fit, automation and API surface, and admin governance controls. Each decision section ties evaluation criteria directly to named capabilities like webhook event streams, RBAC and audit logs, declarative CRDs, and API-driven provisioning.
Lsp software for automated language server access and routing control
Lsp software in this guide refers to systems that manage the lifecycle and routing of language tooling or remote editing access through an API-driven data model. These tools solve problems like consistent server endpoint provisioning, controlled access pathways, and audit-ready changes to routing and permissions.
Teams typically use these platforms to avoid manual configuration drift and to tie access actions to identity. Teleport is a good example of LSP-focused provisioning and routing control with an API-first model and RBAC plus audit logging. Sinch and Telnyx show how webhook event streams and API-managed resources can support automation patterns that teams expect from programmable platforms.
Evaluation criteria for Lsp tools: data model, automation, and governance
Lsp tool selection should prioritize how the product models core entities like connectors, endpoints, and access targets. That data model determines how safely automation can provision and validate changes.
Integration depth matters most when the automation surface is documented and can drive provisioning without manual steps. Admin and governance controls then determine whether changes to routing, endpoints, and access can be audited and constrained with RBAC.
Webhook-driven event model for lifecycle signals
Webhook event streams create deterministic automation triggers for call and message outcomes. Sinch and Telnyx both emphasize delivery and call lifecycle signals tied to API-managed resources so orchestrators can react without scraping logs.
API-first provisioning mapped to a stable resource data model
An API-first provisioning model reduces drift by making endpoints and configuration repeatable. Telnyx and Sinch tie routing and configuration to entities used in API requests. Teleport adds a connector and repository data model for provisioning LSP routing and runtime configuration.
RBAC controls tied to configuration change auditing
RBAC limits who can modify critical access and routing configuration. Teleport provides RBAC plus audit logging for configuration changes to LSP endpoints and routing. Telnyx, Sinch, AWS Systems Manager Session Manager, and Microsoft Azure Bastion also rely on RBAC and audit logging to connect identity, action, and targets.
Data model controls that reduce identity and target ambiguity
Identity mapping controls reduce the risk of inconsistent access and misrouted sessions. Google Cloud OS Login maps IAM identities to Linux users with POSIX UID and GID assignment through OS Login configuration. AWS Systems Manager Session Manager scopes session initiation and target eligibility using IAM and managed instance registration.
Declarative configuration with schema validation for routing and policy
Declarative schemas improve change review and automated rollouts in environments that already use GitOps. Istio uses VirtualService and DestinationRule CRDs for declarative, versionable traffic routing policies with schema-driven validation.
HTTP API-based connection and provisioning workflows
An HTTP API for connection definitions supports programmatic user onboarding and connection management. Apache Guacamole provides a connection gateway model backed by configurable data sources and an HTTP API for programmatic provisioning of users and connection definitions.
Decision framework for selecting the right Lsp integration and governance tool
Selection should start with the automation surface that matches existing workflows. The safest integrations are those where provisioning, routing, and eventing can be expressed through documented APIs or webhook streams.
Next, the data model should be checked for schema stability and for how endpoints and access targets are represented. Finally, governance controls should be validated for RBAC coverage and audit logging of routing and permission changes.
Match the tool’s automation surface to the orchestration pattern
If orchestration depends on event-driven triggers, choose Sinch or Telnyx because both provide webhook-based delivery and call status events tied to API-managed resources. If orchestration depends on provisioning and controlled access workflows, choose Teleport because it provides an API-first model for LSP routing provisioning with RBAC and audit logging.
Validate the data model for endpoints, connectors, and targets
Check whether the tool models the core entities using explicit connectors, repositories, and runtime configuration like Teleport does. Confirm that the fields the API accepts align with how routing and configuration are represented, like Sinch and Telnyx tie routing and configuration to the same entities used in API requests.
Prove governance with RBAC plus audit logs for configuration changes
Require RBAC that gates access to endpoint and routing modifications. Teleport is a direct fit because RBAC plus audit logging covers configuration changes to LSP endpoints and routing. Telnyx and Sinch also include audit logging and RBAC for configuration changes and access governance.
Choose identity-to-target mapping that supports deterministic access
For compute access where identities must map to OS accounts, Google Cloud OS Login provides IAM to Linux user mapping with POSIX UID and GID assignment through OS Login configuration. For audited interactive access without public exposure, AWS Systems Manager Session Manager uses IAM-based RBAC for session initiation and records session activity with audit context.
Pick the deployment model that fits the environment’s change-control process
For Kubernetes-native routing and security policy updates, Istio provides declarative CRDs like VirtualService and DestinationRule that are versionable and validated. For browser-based access brokering to servers, Apache Guacamole provides an HTTP API for user and connection provisioning backed by a connection gateway model.
Which teams benefit most from these Lsp integration and governance tools
Different Lsp tool problems map to different governance and automation surfaces. The right choice depends on whether the team needs webhook-driven lifecycle automation, API-driven endpoint provisioning, identity-mapped access, or declarative routing policies.
Organizations also differ on where control should live, either in a service-specific API model like Sinch and Teleport or in a platform-native control plane like Istio and AWS Systems Manager Session Manager.
Integration and platform teams building programmable voice and messaging flows
Sinch and Telnyx fit because both expose event webhooks for delivery and call lifecycle signals and tie routing and configuration to API-managed resources. These features support deterministic automation without external log polling.
Teams standardizing controlled LSP endpoint provisioning with auditability
Teleport fits because it centers on connectors, repositories, and runtime configuration with an API-first provisioning surface. RBAC plus audit logging tracks configuration changes to LSP endpoints and routing.
Cloud operations teams that need audited interactive access without public jump hosts
AWS Systems Manager Session Manager fits because session initiation uses IAM-based RBAC and session recording ties terminal activity to audit context. Microsoft Azure Bastion fits Azure VM access because RBAC and audit log entries tie session activity to identities and resources while avoiding public IP exposure for target VMs.
Kubernetes platform teams managing traffic and policy with declarative change control
Istio fits because VirtualService and DestinationRule CRDs provide schema-driven validation for routing and policy provisioning. Kubernetes RBAC and auditable configuration changes align with GitOps workflows.
Enterprises centralizing directory-backed identity and access data
OpenLDAP fits when controlled LDAP directory storage, schema customization, and replication are required via standard LDAP APIs. Apache Directory Studio fits operational teams that need schema-aware LDAP browsing and editing with export and import workflows.
Common pitfalls when deploying Lsp software with governance and automation
Misalignment between the orchestration approach and the tool’s automation surface leads to brittle integrations. Another frequent failure mode is governance gaps where routing or endpoint changes are not captured by audit logs tied to RBAC.
Schema complexity can also break automation if teams do not validate state transitions and coordinate configuration changes across environments.
Assuming advanced routing branches will work without external workflow logic
Sinch can require external workflow logic for advanced branching because its routing may not fully cover complex branching without orchestration logic. Telnyx also needs careful handling of event schema and state transitions when automating beyond simple delivery and call outcomes.
Underestimating event schema and state transition handling
Telnyx automation can fail if event schema and state transitions are not handled carefully, especially when orchestrators depend on ordering. Sinch throughput tuning also often depends on middleware retries and idempotency, so automation should include those safeguards.
Picking RBAC without ensuring auditability of routing and endpoint changes
Teleport avoids this pitfall by combining RBAC with audit logging for configuration changes to LSP endpoints and routing. Tools that rely on identity mapping also need auditable traces, like AWS Systems Manager Session Manager session recording and Microsoft Azure Bastion audit logs tied to identity.
Overloading schemas and environment mappings without rollout coordination
Teleport can require coordinated updates across environments when schema changes happen because connector and repository mapping must stay consistent. Istio can also increase operational overhead because routing and policy debugging depend on Envoy behavior and control plane reconciliation timing.
How We Selected and Ranked These Tools
We evaluated Sinch, Telnyx, AWS Systems Manager Session Manager, Microsoft Azure Bastion, Google Cloud OS Login, Teleport, Apache Guacamole, Apache Directory Studio, OpenLDAP, and Istio using three criteria tied to real deployment work: features, ease of use, and value. Features carries the most weight at 40 percent, while ease of use and value each account for 30 percent. The overall score is a weighted average based on those criteria and their recorded capabilities, without assuming lab testing or private benchmarks.
Sinch separated itself with a concrete automation capability: webhook-based delivery and call status events that support automation and audit-friendly operations. That strength aligns with higher features and value because it provides lifecycle signals for orchestration while RBAC and configuration controls support governed multi-team administration.
Frequently Asked Questions About Lsp Software
How do Sinch and Telnyx differ in event-driven automation for voice and messaging workflows?
Which tools provide API-driven provisioning and what data model do they use for configuration?
What options exist for RBAC and audit logging when access to LSP servers or related endpoints is changed?
How does AWS Systems Manager Session Manager fit teams that need audited interactive access without exposing instances to the internet?
How does Azure Bastion handle SSH and RDP access in a private network while preserving identity-based accountability?
What is the most direct way to automate SSH access to Linux targets using IAM policies?
How do Telnyx and Sinch compare when teams need orchestration at scale for delivery and call-state transitions?
Which tools are best suited for browser-based remote access integration and automated connection lifecycle management?
How should teams choose between Teleport and Istio when the main requirement is API-driven control rather than editor features?
How do OpenLDAP and Apache Directory Studio support schema-driven administration and repeatable directory operations?
Conclusion
After evaluating 10 telecommunications, Sinch stands out as our overall top pick — it scored highest across our combined criteria of features, ease of use, and value, which is why it sits at #1 in the rankings above.
Use the comparison table and detailed reviews above to validate the fit against your own requirements before committing to a tool.
Tools reviewed
Primary sources checked during evaluation.
Referenced in the comparison table and product reviews above.
Keep exploring
Comparing two specific tools?
Software Alternatives
See head-to-head software comparisons with feature breakdowns, pricing, and our recommendation for each use case.
Explore software alternatives→In this category
Telecommunications alternatives
See side-by-side comparisons of telecommunications tools and pick the right one for your stack.
Compare telecommunications tools→FOR SOFTWARE VENDORS
Not on this list? Let’s fix that.
Our best-of pages are how many teams discover and compare tools in this space. If you think your product belongs in this lineup, we’d like to hear from you—we’ll walk you through fit and what an editorial entry looks like.
Apply for a ListingWHAT THIS INCLUDES
Where buyers compare
Readers come to these pages to shortlist software—your product shows up in that moment, not in a random sidebar.
Editorial write-up
We describe your product in our own words and check the facts before anything goes live.
On-page brand presence
You appear in the roundup the same way as other tools we cover: name, positioning, and a clear next step for readers who want to learn more.
Kept up to date
We refresh lists on a regular rhythm so the category page stays useful as products and pricing change.
