
**Describe the bug**
bitmapContains does not worked for UInt64 while the bitmap is of type AggregateFunction(groupBitmap, UInt64)


**How to reproduce**
SELECT 
    bitmapBuild([toUInt64(1), toUInt64(10000)]) AS res, 
    bitmapContains(res, toUInt64(200000000)) AS aa

Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Second argument for function bitmapContains must be UInt32 but it has type UInt64.. 

**Expected behavior**
for a 64-bit bitmap, bitmapContains should be able to take UInt64 for the parameter.
 
**Error message and/or stacktrace**
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Second argument for function bitmapContains must be UInt32 but it has type UInt64.. 

**Additional context**
Tried with many versions such as 19.13, 20.3 etc including the latest 20.12.3, still not working.
{
public:
    static constexpr auto name = "bitmapTransform";
    static FunctionPtr create(const Context &) { return std::make_shared<FunctionBitmapTransform>(); }
    String getName() const override { return name; }
    bool isVariadic() const override { return false; }
    size_t getNumberOfArguments() const override { return 3; }
    DataTypePtr getReturnTypeImpl(const DataTypes & arguments) const override
    {
        const DataTypeAggregateFunction * bitmap_type = typeid_cast<const DataTypeAggregateFunction *>(arguments[0].get());
        if (!(bitmap_type && bitmap_type->getFunctionName() == AggregateFunctionGroupBitmapData<UInt32>::name()))
            throw Exception(
                "First argument for function " + getName() + " must be a bitmap but it has type " + arguments[0]->getName() + ".",
                ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
        for (size_t i = 0; i < 2; ++i)
        {
            const auto * array_type = typeid_cast<const DataTypeArray *>(arguments[i + 1].get());
            String msg(i == 0 ? "Second" : "Third");
            msg += " argument for function " + getName() + " must be an UInt32 array but it has type " + arguments[i + 1]->getName() + ".";
            if (!array_type)
                throw Exception(msg, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
            auto nested_type = array_type->getNestedType();
            WhichDataType which(nested_type);
            if (!which.isUInt32())
                throw Exception(msg, ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT);
        }
        return arguments[0];
    }
    bool useDefaultImplementationForConstants() const override { return true; }