int  expo( int  a,int  b,int  M) 
{ 
    int  res= 1 ; 
    a% = M; 
    while ( b) 
    { 
        if ( b& 1 ) 
        { 
            res= ( res* 1ll* a) % M; 
        } 
        a= ( a* 1ll* a) % M; 
        b>>= 1 ; 
    } 
    return  res; 
} 
 
int  fun( vector< int >  arr)  { 
    int  M = 1e9 + 7 , n= arr.size ( ) ; 
    int  ans= 0 ; 
    for ( int  i= 0 ;  i< n; i++ ) 
    { 
        ans | = arr[ i] ; 
    } 
 
    ans =  ( expo( 2 ,n- 1 ,M)  * 1ll*  ans) % M; 
    return  ans; 
} 
 
				aW50IGV4cG8oaW50IGEsaW50IGIsaW50IE0pCnsKICAgIGludCByZXM9MTsKICAgIGElPU07CiAgICB3aGlsZShiKQogICAgewogICAgICAgIGlmKGImMSkKICAgICAgICB7CiAgICAgICAgICAgIHJlcz0ocmVzKjFsbCphKSVNOwogICAgICAgIH0KICAgICAgICBhPShhKjFsbCphKSVNOwogICAgICAgIGI+Pj0xOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKaW50IGZ1bih2ZWN0b3I8aW50PiBhcnIpIHsKICAgIGludCBNID0xZTkrNywgbj1hcnIuc2l6ZSgpOwogICAgaW50IGFucz0wOwogICAgZm9yKGludCBpPTA7IGk8bjtpKyspCiAgICB7CiAgICAgICAgYW5zIHw9YXJyW2ldOwogICAgfQogICAgCiAgICBhbnMgPSAoZXhwbygyLG4tMSxNKSAqMWxsKiBhbnMpJU07CiAgICByZXR1cm4gYW5zOwp9