contract Ownable5 is Context {
    address[5] private _owners;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owners[0] = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

   /**
     * @dev Returns the address of the current owners.
     */
    function owners() public view returns (address[5] memory) {
        return _owners;
    }

   /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        address sender = _msgSender();
        for(uint i = 0; i < _owners.length; i++) {
          if (sender == _owners[i]) {
            return true;
          }
        }
        return false;
    }

    /*
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(uint idx, address newOwner) public onlyOwner {
        _transferOwnership(idx, newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(uint idx, address newOwner) internal {
        require(idx < _owners.length, "Ownable: index out of range");
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owners[idx], newOwner);
        _owners[idx] = newOwner;
    }
}
function isOwner() public view returns (bool) {
    address sender = _msgSender();
    for(uint i = 0; i < _owners.length; i++) {
      if (sender == _owners[i]) {
        return true;
      }
    }
    return false;
}

/**
 * @dev Returns true if the caller is the current owner.
 */