abstract contract ImplementationProvider {
  /**
   * @dev Abstract function to return the implementation address of a contract.
   * @param contractName Name of the contract.
   * @return Implementation address of the contract.
   */
    function getImplementation(string memory contractName) public view virtual returns (address);
}
// solhint-disable-next-line indent
function getImplementation(string memory contractName) public view virtual returns (address);

/**
 * @dev Abstract function to return the implementation address of a contract.
 * @param contractName Name of the contract.
 * @return Implementation address of the contract.
 */