Liquid Stake with compassSOL for an 8.04% APY from staking, MEV + fees

Enjoy the freedom of liquid staking in Solana Defi while delegating your stake to the high performance Solana Compass validator. Stake or unstake at any time here, or with a Jupiter swap.

Benefit from our high staking returns and over 2 years experience operating a Solana validator, and receive additional yield from priority fees + MEV tips

Earn 6.8% APY staking with Solana Compass

Help decentralize and secure the Solana network delegating your stake to us and earn an impressive 6.8% APY yield on your SOL, while supporting us to create new guides and tools. Learn more

Stake your SOL

  1. Click to connect your wallet
  2. Enter the amount you wish to stake
  3. Kick back and enjoy your returns
  4. Unstake from your wallet or our staking dashboard

Earn 6.8% APY staking with Solana Compass

Help decentralize and secure the Solana network delegating your stake to us and earn an impressive 6.8% APY yield on your SOL, while supporting us to create new guides and tools.

Learn more

Solana Changelog May 31: Interfaces, Solang, and Solana ChatGPT

By Changelog

Published on 2023-05-31

Explore the latest Solana developments including interfaces, Solang Compiler v0.3.0, and the new Solana ChatGPT plugin in this comprehensive changelog.

The notes below are AI generated and may not be 100% accurate. Watch the video to be sure!

Solana Changelog May 31: Interfaces, Solang, and Solana ChatGPT

Welcome to the latest edition of the Solana Changelog, where we dive deep into the most recent developments and updates in the Solana ecosystem. This week, we're excited to discuss a range of topics that showcase the continued growth and innovation within the Solana community. From new proposals for interfaces to advancements in compiler technology and AI integration, there's a lot to unpack. Let's dive in!

Developer Tickets for Breakpoint

Exciting news for developers looking to attend Breakpoint, Solana's annual conference in Amsterdam! The Solana Foundation is offering a significant discount on developer tickets, making them available for just $10. This initiative aims to encourage broader participation from the developer community and foster greater engagement with the Solana ecosystem.

To qualify for a developer ticket, you need to have open-source contributions on GitHub. If you've made contributions specifically to Solana projects, you're automatically eligible. This offer extends beyond just Solana or Web3 developers – if you're a developer in any field with open-source contributions, you can take advantage of this opportunity.

This move by the Solana Foundation demonstrates their commitment to growing the developer community and making the conference accessible to a wider audience. It's an excellent chance for developers to network, learn about the latest Solana developments, and contribute to the ecosystem's growth.

Metaplex Program Changes

Metaplex, a key player in the Solana NFT ecosystem, has announced significant changes to their program structure. Over the next 18 months, they plan to make their program immutable, a move that will enhance security and stability for users and developers alike.

This transition to immutability is a crucial step in the maturation of the Metaplex ecosystem. By making the program immutable, Metaplex is ensuring that the core functionality remains stable and predictable, which is essential for building long-term trust in the platform.

Along with the immutability plan, Metaplex is also introducing some new fees. While the details of these fees are still being discussed, they're likely aimed at sustaining the development and maintenance of the Metaplex ecosystem.

The Metaplex team has been transparent about these changes, encouraging community discussion on Twitter and GitHub. They've provided comprehensive information about the implications of these changes and are actively seeking feedback from developers and users.

This move by Metaplex reflects a broader trend in the Solana ecosystem towards greater stability and sustainability. As the ecosystem matures, we can expect to see more projects taking similar steps to ensure long-term viability and user trust.

Interfaces: A New Frontier for Solana

One of the most exciting developments in the Solana ecosystem is the ongoing discussion about interfaces. Interfaces represent a significant step forward in terms of program interoperability and standardization on Solana.

The concept of interfaces has been a hot topic on Twitter, with the Solana team even hosting a Twitter space two weeks ago to discuss the subject in depth. Now, we have a new Solana Request for Comments (SRC) that dives deeper into the potential implementation of interfaces on Solana.

SRC 15, proposed by a community member known as "totally", outlines the goals for interfaces and presents ideas for their implementation. This proposal is particularly noteworthy as it suggests a different approach compared to previous proposals.

In the past, interface implementations were based on cross-program invocations (CPIs). However, the new proposal in SRC 15 suggests making interfaces discoverable from the program binary itself. This approach eliminates the need for CPIs, which could significantly improve the developer experience and reduce complexity.

One of the key constraints in this new proposal is that transactions must be the same size. While this might seem limiting at first glance, it actually provides consistency and predictability, which are crucial for a smooth developer experience.

To understand the significance of interfaces, let's consider an example. Currently, if you have a token program with a transfer function that includes parameters like amount and destination, you can only use that specific token program for transfers. With interfaces, you could define a standard transfer function that all token programs would implement. This would allow for greater innovation and competition within the Solana ecosystem, as multiple token programs could coexist and be interoperable.

The introduction of interfaces could revolutionize how developers build on Solana. It would allow for more modular and flexible programming, similar to how Ethereum uses standards like ERC20 for tokens or ERC721 for NFTs. This could lead to a more diverse and innovative ecosystem, where developers can easily create and integrate new types of tokens or other standardized programs.

Moreover, interfaces could significantly reduce the potential impact of vulnerabilities. If there's an issue with one implementation of a token program, it wouldn't affect the entire ecosystem, as users could easily switch to another implementation that adheres to the same interface.

The community is encouraged to join the discussion on the Solana forum and contribute their thoughts on the various interface implementation proposals. This is a crucial time for shaping the future of Solana development, and community input is vital in ensuring that the final implementation meets the needs of developers and users alike.

Zero-Knowledge Developments

The Solana ecosystem is making significant strides in the realm of zero-knowledge (ZK) technology. A recent commit to the Solana repository introduces a new key generation utility for zero-knowledge proofs, specifically for the ElGamal curve.

This new keygen utility is different from the standard wallet key generation, which uses the Ed25519 curve. The introduction of ZK-specific key generation tools indicates that Solana is gearing up for more extensive zero-knowledge capabilities in the future.

The implications of this development are far-reaching. Zero-knowledge proofs allow for enhanced privacy and security in blockchain transactions. With ZK technology, users can prove the validity of a transaction without revealing the underlying data, opening up new possibilities for privacy-preserving applications on Solana.

Interestingly, this development isn't isolated to the core Solana team. There are reports that the Unity SDK for Solana is also exploring zero-knowledge implementations, potentially using the LIGHT protocol which has recently been ported to Solana.

The integration of zero-knowledge technology into Solana's base layer is a significant advantage. Unlike some other blockchain platforms where privacy features need to be implemented as separate layers, Solana's architecture allows for these features to be built directly into applications. This enables greater composability and interoperability between privacy-enabled protocols and other applications on Solana.

The potential applications of zero-knowledge technology on Solana are vast. Beyond private transactions, it opens up possibilities for games like battleship or poker, where players need to keep certain information hidden while still proving the validity of their actions.

As these zero-knowledge capabilities mature, we can expect to see a new wave of privacy-preserving applications built on Solana. This could range from confidential financial applications to secure voting systems and beyond.

Minor Breaking Change in GetTransaction RPC Call

While it might seem small, there's been a change in the GetTransaction RPC call that developers should be aware of. The call will no longer return address lookup tables if they are set to null. This change aligns with the intended behavior of the function.

Although the Solana team believes this change won't affect many developers, it's always important to be aware of such updates. If you're using Web3.js and interacting with address lookup tables through the GetTransaction call, you should double-check your implementation to ensure it aligns with this new behavior.

This change underscores the importance of staying up-to-date with even minor updates in the Solana ecosystem. While breaking changes are kept to a minimum, occasional adjustments like this are necessary to improve the overall functionality and consistency of the system.

Solang Solidity Compiler v0.3.0

Exciting news for developers familiar with Solidity: the Solang Solidity Compiler has released version 0.3.0. Solang is a crucial tool that allows developers to write Solidity smart contracts for Solana, bridging the gap between Ethereum and Solana development ecosystems.

Solang works by compiling Solidity code into Rust, making it compatible with Solana's architecture. This compatibility extends to Anchor, Solana's popular framework for building smart contracts, allowing for seamless integration of Solidity contracts into Anchor projects.

The release of version 0.3.0 marks a significant milestone in Solang's development. Over the past few months, Solang has been maturing rapidly, offering an increasingly robust solution for developers looking to leverage their Solidity skills on Solana.

This new version comes with extensive documentation, including practical examples to help developers get started. One such example is a "zombie" contract, providing a concrete illustration of how Solidity contracts can be implemented on Solana using Solang.

The Solana Foundation's Developer Relations team is also working on creating more documentation and examples to further smooth the path for developers transitioning from Solidity to Solana. This initiative aims to reduce the learning curve and make it easier for Ethereum developers to start building on Solana.

The availability of Solang opens up exciting possibilities for the Solana ecosystem. It allows the platform to tap into the large pool of Solidity developers, potentially accelerating the growth of the Solana developer community. Moreover, it enables the porting of popular Ethereum projects to Solana, enriching the ecosystem with diverse applications and use cases.

As Solang continues to evolve, we can expect to see more Solidity developers exploring Solana, bringing with them a wealth of experience and innovative ideas. This cross-pollination between ecosystems could lead to exciting new developments in the Solana space.

Form Function Goes Open Source

In a move that exemplifies the open and collaborative nature of the Solana ecosystem, Form Function, a popular NFT marketplace, has announced that they are going completely open source. This decision opens up new opportunities for developers and entrepreneurs in the Solana space.

Form Function has not only made their code publicly available but has also produced extensive documentation to guide others in understanding and utilizing their codebase. This documentation covers a wide range of topics, including:

  1. How participation NFTs work
  2. The mechanics of NFT campaigns
  3. User experience design principles for NFT marketplaces
  4. A comprehensive guide on building your own NFT marketplace

This wealth of information provides invaluable insights into the inner workings of a successful NFT marketplace on Solana. It offers a unique opportunity for developers to learn from Form Function's experiences, understand the challenges they faced, and see how they overcame various obstacles.

The documentation also delves into the infrastructure management aspects of running a Solana application at scale. This is particularly valuable for developers looking to build and deploy large-scale applications on Solana.

By open-sourcing their project and providing such detailed documentation, Form Function is contributing significantly to the growth and maturation of the Solana ecosystem. Their move encourages innovation, allowing others to build upon their work and potentially create new and improved NFT marketplaces or related applications.

This open-source initiative aligns perfectly with the ethos of the blockchain and crypto space, promoting transparency, collaboration, and shared progress. It's a testament to the strength of the Solana community and its commitment to fostering a vibrant, innovative ecosystem.

Solana ChatGPT Plugin

In an exciting development at the intersection of blockchain and artificial intelligence, a new ChatGPT plugin for Solana has been introduced. Developed by Noah from Solana Labs, this plugin enables users to interact with the Solana blockchain through natural language queries in ChatGPT.

The Solana ChatGPT plugin opens up a world of possibilities for both developers and users. It allows for seamless querying of blockchain data, making information about Solana more accessible than ever before. For instance, users can ask about specific NFTs by providing their addresses, and the plugin will return detailed information, including visual representations where applicable.

But the potential of this plugin goes beyond just querying data. There are indications that future iterations may allow users to interact with the Solana blockchain more directly, potentially even initiating transactions through natural language commands. This could dramatically lower the barrier to entry for blockchain interactions, making Solana more accessible to a broader audience.

For developers, this plugin presents an opportunity to build more intuitive interfaces for blockchain interactions. By leveraging the natural language processing capabilities of ChatGPT in combination with Solana's high-speed, low-cost transactions, developers could create user experiences that feel more like conversing with an AI assistant than interacting with a complex blockchain system.

The introduction of this plugin also highlights Solana's commitment to staying at the forefront of technological innovation. By embracing AI integration, Solana is positioning itself as a forward-thinking platform ready to leverage the latest advancements in technology to improve user experience and expand its ecosystem.

As this technology matures, we can expect to see more sophisticated integrations between AI and blockchain technology on Solana. This could lead to new types of decentralized applications that combine the trustlessness and transparency of blockchain with the intuitive interface of conversational AI.

Successful Release of Solana 1.14.17

In what can only be described as a testament to the robustness of Solana's development and testing processes, the release of version 1.14.17 was a resounding success. The update was deployed smoothly, with no noticeable disruptions to the network – a "non-event," as described by the Solana team.

This seamless transition to the new version is exactly what you want to see in a blockchain network update. It demonstrates the effectiveness of Solana's testing procedures and the stability of the new release. The fact that users and developers didn't notice any issues during the update is a strong positive signal for the network's reliability.

For those interested in the specifics of what's included in version 1.14.17, Solana has published a detailed blog post on solana.com. This post outlines all the new features and improvements that come with this version.

The smooth rollout of 1.14.17 is particularly noteworthy given the complexity of blockchain networks and the potential for issues during updates. It showcases Solana's commitment to maintaining a stable and reliable network, which is crucial for developers building on the platform and users relying on Solana-based applications.

Anchor Updates and Fixes

While the core Solana update went smoothly, Anchor developers might have encountered some issues due to changes in the metadata program. Specifically, metadata V2 was removed from the metadata program, which could cause problems for some Anchor projects.

To address these issues, the Anchor team is working on fixes that will be included in the upcoming version 0.28.0. In the meantime, developers are advised to check the release notes and consider pointing directly to the master version of Anchor, where many of these issues have already been addressed.

Some developers may need to update their winner version or hard-code their token metadata version as temporary workarounds. However, these issues should be fully resolved with the release of Anchor 0.28.0.

It's worth noting that solutions to many of these problems can be found on Solana Stack Exchange. The Solana community has been quick to identify and solve these issues, demonstrating the strength and responsiveness of the ecosystem.

This situation also highlights the importance of the Solana Stack Exchange as a resource for developers. By asking questions and sharing solutions on this platform, developers not only solve their immediate problems but also contribute to a knowledge base that benefits the entire Solana community.

The Road Ahead

As we wrap up this changelog, it's clear that the Solana ecosystem is buzzing with activity and innovation. From the ongoing discussions about interfaces to the advancements in zero-knowledge technology, from the maturation of tools like Solang to the integration of AI through the ChatGPT plugin, Solana continues to push the boundaries of what's possible in blockchain technology.

The successful release of version 1.14.17 demonstrates the stability and reliability of the Solana network, providing a solid foundation for the innovations built on top of it. Meanwhile, the open-sourcing of projects like Form Function shows the collaborative spirit of the Solana community, fostering an environment of shared knowledge and rapid innovation.

As we look to the future, it's exciting to imagine the new applications and use cases that will emerge from these developments. The introduction of interfaces could lead to a more diverse and interoperable ecosystem of Solana programs. The advancements in zero-knowledge technology could usher in a new era of privacy-preserving applications. The Solang compiler could bring a wave of Ethereum developers and projects to Solana. And the ChatGPT plugin could make blockchain interactions more intuitive and accessible than ever before.

For developers, now is an excellent time to get involved with Solana. Whether you're experienced in Solidity and looking to leverage your skills on a high-performance blockchain, or you're new to blockchain development and attracted by Solana's speed and low costs, there are more tools and resources available than ever to help you build on Solana.

As always, the Solana community is encouraged to stay engaged, participate in discussions about new proposals, and contribute to the ecosystem's growth. Whether it's by applying for a discounted Breakpoint ticket, joining the conversation about interfaces, or simply building your next project on Solana, every contribution helps to strengthen and expand this vibrant ecosystem.

Stay tuned for more updates, and happy building on Solana!

Facts + Figures

  • Developer tickets for Breakpoint, Solana's annual conference in Amsterdam, are available for just $10.
  • Metaplex is planning to make their program immutable over the next 18 months.
  • SRC 15 proposes a new approach to implementing interfaces on Solana, making them discoverable from the program binary.
  • A new zero-knowledge key generation utility for the ElGamal curve has been added to the Solana repository.
  • The Unity SDK for Solana is exploring zero-knowledge implementations, potentially using the LIGHT protocol.
  • The GetTransaction RPC call will no longer return address lookup tables if they are set to null.
  • Solang Solidity Compiler has released version 0.3.0, allowing developers to write Solidity smart contracts for Solana.
  • Form Function, a popular NFT marketplace on Solana, has gone completely open source.
  • A new ChatGPT plugin for Solana has been developed, allowing users to interact with the Solana blockchain through natural language queries.
  • Solana version 1.14.17 was successfully released without any noticeable disruptions to the network.
  • Anchor developers may encounter issues due to the removal of metadata V2 from the metadata program.
  • Anchor version 0.28.0 is upcoming and will include fixes for recent issues.
  • The Solana Stack Exchange has become a valuable resource for developers to find solutions to common problems.

Questions Answered

What are the latest developments in Solana's interface proposals?

SRC 15, a new proposal for implementing interfaces on Solana, suggests making interfaces discoverable from the program binary itself. This approach eliminates the need for cross-program invocations (CPIs), potentially improving the developer experience and reducing complexity. The proposal also stipulates that transactions must be the same size, providing consistency and predictability. This new approach could lead to greater innovation and competition within the Solana ecosystem, allowing for more modular and flexible programming similar to Ethereum's ERC standards.

How is Solana advancing in zero-knowledge technology?

Solana is making significant strides in zero-knowledge (ZK) technology. A recent addition to the Solana repository introduces a new key generation utility for zero-knowledge proofs, specifically for the ElGamal curve. This is different from the standard wallet key generation, which uses the Ed25519 curve. Additionally, there are reports that the Unity SDK for Solana is exploring zero-knowledge implementations, potentially using the LIGHT protocol. These developments indicate that Solana is preparing for more extensive zero-knowledge capabilities in the future, which could enable enhanced privacy and security in blockchain transactions.

What is the Solang Solidity Compiler, and why is it significant?

The Solang Solidity Compiler, which recently released version 0.3.0, is a tool that allows developers to write Solidity smart contracts for Solana. It works by compiling Solidity code into Rust, making it compatible with Solana's architecture. This compatibility extends to Anchor, Solana's popular framework for building smart contracts. The significance of Solang lies in its ability to bridge the gap between Ethereum and Solana development ecosystems. It allows Solidity developers to leverage their existing skills on Solana, potentially accelerating the growth of the Solana developer community and enabling the porting of popular Ethereum projects to Solana.

How is AI being integrated into the Solana ecosystem?

AI is being integrated into the Solana ecosystem through a new ChatGPT plugin developed by Noah from Solana Labs. This plugin enables users to interact with the Solana blockchain through natural language queries in ChatGPT. Users can ask about specific NFTs by providing their addresses, and the plugin will return detailed information. Future iterations may allow for more direct interactions with the blockchain, potentially including the ability to initiate transactions through natural language commands. This integration showcases Solana's commitment to leveraging cutting-edge technology to improve user experience and expand its ecosystem.

What recent changes have been made to the Solana core protocol?

Solana recently released version 1.14.17 of its core protocol. The update was deployed smoothly, with no noticeable disruptions to the network, demonstrating the effectiveness of Solana's testing procedures and the stability of the new release. While the specific features of this update are detailed in a blog post on solana.com, the seamless transition is noteworthy in itself, showcasing Solana's ability to maintain a stable and reliable network. This stability is crucial for developers building on the platform and users relying on Solana-based applications.

How is Form Function contributing to the Solana ecosystem?

Form Function, a popular NFT marketplace on Solana, has decided to go completely open source. They have not only made their code publicly available but have also produced extensive documentation covering topics such as how participation NFTs work, the mechanics of NFT campaigns, user experience design principles for NFT marketplaces, and a comprehensive guide on building an NFT marketplace. This move contributes significantly to the Solana ecosystem by providing valuable insights into the inner workings of a successful NFT marketplace, encouraging innovation, and allowing others to build upon their work.

What changes are happening with Metaplex?

Metaplex, a key player in the Solana NFT ecosystem, has announced plans to make their program immutable over the next 18 months. This transition to immutability is a crucial step in enhancing security and stability for users and developers. Along with the immutability plan, Metaplex is also introducing some new fees. While the details of these fees are still being discussed, they're likely aimed at sustaining the development and maintenance of the Metaplex ecosystem. These changes reflect a broader trend in the Solana ecosystem towards greater stability and sustainability.

What resources are available for developers facing issues with recent updates?

Developers facing issues with recent updates, particularly Anchor developers, can find solutions on Solana Stack Exchange. Many common problems and their solutions have been documented there by the community. For Anchor-specific issues, such as those arising from the removal of metadata V2 from the metadata program, developers are advised to check the release notes and consider pointing directly to the master version of Anchor. The upcoming Anchor version 0.28.0 is expected to include fixes for these recent issues. Additionally, the Solana team and community are actively engaged in providing support and resources to help developers navigate these changes.

How can developers get involved with the Solana ecosystem?

Developers can get involved with the Solana ecosystem in several ways. They can apply for discounted developer tickets to Breakpoint, Solana's annual conference in Amsterdam. They can participate in discussions about new proposals, such as the ongoing conversation about interfaces. Developers familiar with Solidity can explore using the Solang compiler to write smart contracts for Solana. Those interested in AI integration can experiment with the new Solana ChatGPT plugin. Additionally, developers are encouraged to contribute to open-source projects like Form Function, ask and answer questions on Solana Stack Exchange, and of course, build their own projects on Solana. The ecosystem provides numerous tools, resources, and opportunities for developers at all levels of blockchain experience.

What is the significance of Solana's approach to zero-knowledge technology?

Solana's approach to zero-knowledge technology is significant because it allows for these features to be built directly into applications on the base layer, rather than requiring separate layers or protocols. This enables greater composability and interoperability between privacy-enabled protocols and other applications on Solana. The potential applications are vast, ranging from private transactions to secure gaming implementations. As these zero-knowledge capabilities mature, we can expect to see a new wave of privacy-preserving applications built on Solana, potentially including confidential financial applications, secure voting systems, and more. This approach positions Solana as a platform capable of supporting advanced privacy features while maintaining its high performance and low transaction costs.

Related Content

Solana Changelog May 31 - Interfaces, Solang, and Solana ChatGPT

Explore Solana's latest updates including interfaces, Solang Compiler v0.3.0, and the new Solana ChatGPT plugin. Learn about developer tickets for Breakpoint and Form Function's open-source move.

Solana Changelog - Token Extensions and Transaction Size Fees

Explore Solana's latest developments including token extensions, transaction size fees, and the upcoming Mountain Dew 5 event in this comprehensive changelog.

Solana Changelog March 14 - Tiered Account Storage, Debugging Programs, and Anchor

Explore Solana's latest developments including tiered account storage, program debugging, and major Anchor updates in this comprehensive changelog.

Solana Changelog - August 1 - Gamejam, RWA, Quick Program Deploys

Explore the latest Solana developments including the Game Jam, RWA security token standards, and improved program deployment speeds in this week's Changelog.

Solana Changelog July 6 - Cubik, SPL-token, and Solana-Tools

Explore the latest Solana developments including Cardinal Labs shutdown, Jupiter's Token 2022 adoption, Cubik's tooling round, and proposed SPL-token improvements.

Solana Changelog - EpochStakes, SolFuzz, and Optimizations

Explore Solana's recent advancements including validator reward proposals, performance optimizations, and new developer resources in this comprehensive changelog.

Solana Changelog March 7 - Verifiable Builds, Admin RPC, and Geyser

Explore the latest Solana developments including verifiable builds, admin RPC improvements, and Geyser interface updates for enhanced performance and security.

Solana Changelog - Bridge Comparator, Program Loader v4, Feature Gates, and More

Discover the latest Solana developments including Jupiter's bridge comparator, Program Loader v4, feature gates, and more in this comprehensive changelog.

Solana Changelog - Feature Activation, Decoupling the SVM, and Rust v1.76

Explore Solana's newest developments including feature activation schedules, SVM decoupling, Rust upgrade to v1.76, and upcoming events in this comprehensive changelog.

Solana Changelog - Token Extensions and Transaction Size Fees

Discover the latest Solana updates including token extensions, transaction size fees, and developer resources in this comprehensive changelog.

Solana Changelog May 8 - Native Events, Solidity, Gaming

Explore Solana's recent advancements including Fire Dancer's QUIC implementation, native events proposal, and new gaming resources in this comprehensive changelog.

Solana Changelog Jul 3 - RPC Deprecations, Actions, and Blinks

Explore Solana's latest developments including RPC method deprecations, new Actions and Blinks features, and upcoming changes to compute unit charging.

Solana Changelog - MoveStake, Core Concepts, and Bigtable Support

Explore the latest Solana developments including MoveStake proposal, CLI improvements, and revamped core concept documentation. Learn how these changes enhance the Solana ecosystem.

Solana Changelog July 6 - Cubik, SPL-token, and Solana-Tools

Explore the latest Solana updates including Cardinal Labs shutdown, Jupiter's Token 2022 support, Cubik's tooling round, and new developer resources

Solana Changelog May 2 - Account Interfaces, Web3.js Experimental, and Tea Package Manager

Explore the latest Solana changes including account interfaces, Web3.js experimental updates, and the new Tea package manager for easier Solana installation.