Dada una secuencia $A_1, A_2, \ldots, A_N$ de longitud $N$. Escribe un programa para manejar las siguientes consultas:
1 x y v: asigna $A_i = (A_i + v) \% MOD$ para $x \le i \le y$.2 x y v: asigna $A_i = (A_i \times v) \% MOD$ para $x \le i \le y$.3 x y v: asigna $A_i = v$ para $x \le i \le y$.4 x y: imprime $(\sum_{i=x}^{y} A_i) \% MOD$ para $x \le i \le y$.
Aquí, $MOD$ es siempre $10^9+7$, y $\%$ denota la operación módulo.
Entrada
La primera línea contiene la longitud $N$ de la secuencia. ($1 \le N \le 100{,}000$)
La segunda línea contiene $A_1, A_2, \ldots, A_N$. ($1 \le A_i \le 10^9$)
La tercera línea contiene el número de consultas $M$. ($1 \le M \le 100{,}000$)
Las siguientes $M$ líneas contienen cada una una consulta. ($1 \le x \le y \le N$, $1 \le v \le 10^9$)
Salida
Para cada consulta de tipo $4$, imprime la respuesta en una línea separada en orden.
Ejemplos
Entrada 1
4 1 2 3 4 4 4 1 4 1 1 3 10 2 2 4 2 4 1 4
Salida 1
10 69