#include #include #include #include #include using namespace std; int n,a[1000500],c[1000500],f[1000500],ans=0; unordered_maplast; const int mod=1e9+7; int main() { ios::sync_with_stdio(0); int n,m; cin>>n; for(int i=1;i<=n;i++){ cin>>c[i]; a[i]=a[i-1]^c[i]; } ans=0; memset(f,0,sizeof(f)); f[0]=1; for(int i=1;i<=n;i++) { if(!last[a[i]])f[i]=(2ll*f[i-1])%mod; else f[i]=(2ll*f[i-1]-f[last[a[i]]-1]+mod)%mod; last[a[i]]=i; } ans=(f[n]%mod+mod)%mod; cout<