func_code_string: #include <bits/stdc++.h>   using namespace std;   const int L = 20, N = 1e6 + 5;   const long long MOD = 1e9 + 7;   int dp[1 << L], n;   long long pow2[N];   int main() {     scanf( %d , &n);     int a;     for (int i = (int)1; i <= n; i++) {       scanf( %d , &a);       dp[a]++;     }     pow2[0] = 1;     for (int i = (int)1; i <= N - 1; i++) pow2[i] = pow2[i - 1] * 2 % MOD;     for (int i = (int)0; i <= L - 1; i++)       for (int msk = (int)0; msk <= (1 << L) - 1; msk++)         if (msk >> i & 1 ^ 1) dp[msk] += dp[msk ^ (1 << i)];     for (int msk = (int)0; msk <= (1 << L) - 1; msk++) {     }     long long ans = (pow2[dp[0]] - 1 + MOD) % MOD;     for (int msk = (int)1; msk <= (1 << L) - 1; msk++) {       if (dp[msk] == 0) continue;       if (__builtin_popcount(msk) % 2) {         ans = (ans - pow2[dp[msk]] + 1 + MOD) % MOD;       } else {         ans = (ans + pow2[dp[msk]] - 1 + MOD) % MOD;       }     }     cout << ans << endl;     return 0;   }   