def solve(s): MOD = 10**9 + 7 n = len(s) left, right = [], [] gold = 0 for i in range(n): if s[i] == 'o': gold += 1 left.append(gold) gold = 0 for i in range(n-1, -1, -1): if s[i] == 'o': gold += 1 right.append(gold) right.reverse() ans = 0 for i in range(n): if s[i] == '.': if i == 0 or s[i-1] == '<': ans += pow(2, left[i], MOD) elif s[i-1] == '=': ans += pow(2, left[i-1], MOD) if i == n-1 or s[i+1] == '>': ans += pow(2, right[i], MOD) elif s[i+1] == '=': ans += pow(2, right[i+1], MOD) if s[i-1:i+2] == '=<=' and left[i-1] == right[i+1]: ans -= pow(2, left[i-1], MOD) elif s[i] == '<' and i > 0: if s[i-1] != '<': ans += pow(2, left[i-1], MOD) elif s[i] == '>' and i < n-1: if s[i+1] != '>': ans += pow(2, right[i+1], MOD) ans -= pow(2, gold, MOD) ans %= MOD return ans t = int(input()) for i in range(1, t+1): s = input().strip() ans = solve(s) print("Case #{}: {}".format(i, ans))