#include <bits/stdc++.h>
using namespace std;
int pow_mod(int a, long long b, int MOD) {
  int ret = 1;
  while (b) {
    if (b & 1) ret = 1ll * ret * a % MOD;
    b >>= 1;
    a = 1ll * a * a % MOD;
  }
  return ret;
}
int main() {
  int T, k, MOD;
  long long l, r;
  scanf("%d", &T);
  while (T--) {
    scanf("%d%I64d%I64d%d", &k, &l, &r, &MOD);
    if (MOD == 2) {
      if (k & 1)
        printf("0\n");
      else
        printf("1\n");
      continue;
    }
    int res;
    int q = pow_mod(k, pow_mod(2, l, MOD - 1), MOD);
    if (k % MOD == 0) q = 0;
    if (q == 1)
      res = pow_mod(2, r - l + 1, MOD);
    else {
      res = pow_mod(q, pow_mod(2, r - l + 1, MOD - 1), MOD);
      if (!q) res = 0;
      res = (res + MOD - 1) % MOD;
      res = 1ll * res * pow_mod((q + MOD - 1) % MOD, MOD - 2, MOD) % MOD;
    }
    if (k & 1)
      res = 1ll * res * pow_mod(pow_mod(2, r - l, MOD), MOD - 2, MOD) % MOD;
    printf("%d\n", res);
  }
  return 0;
}
