interface IBeaconUpgradeable {
    /**
     * @dev Must return an address that can be used as a delegate call target.
     *
     * {BeaconProxy} will check that this address is a contract.
     */
    function implementation() external view returns (address);
}
/**
 * @dev This is the interface that {BeaconProxy} expects of its beacon.
 */
function implementation() external view returns (address);

/**
 * @dev Must return an address that can be used as a delegate call target.
 *
 * {BeaconProxy} will check that this address is a contract.
 */